Merge branch '86Box:master' into nec-v20
@@ -18,9 +18,9 @@ version: 1
|
||||
AppDir:
|
||||
path: ./archive_tmp
|
||||
app_info:
|
||||
id: !ENV 'net.${project_lower}.${project_lower}'
|
||||
id: !ENV 'net.${project_lower}.${project}'
|
||||
name: !ENV '${project}'
|
||||
icon: !ENV '${project_lower}'
|
||||
icon: !ENV '${project_icon}'
|
||||
version: !ENV '${project_version}'
|
||||
exec: !ENV 'usr/local/bin/${project}'
|
||||
exec_args: $@
|
||||
|
||||
38
.ci/Jenkinsfile
vendored
@@ -15,9 +15,12 @@
|
||||
* Copyright 2021-2022 RichardG.
|
||||
*/
|
||||
|
||||
def repository = 'https://github.com/86Box/86Box.git'
|
||||
def commitBrowser = 'https://github.com/86Box/86Box/commit/%s'
|
||||
def branch = 'master'
|
||||
/* ['main builds', 'branch builds'] */
|
||||
def repository = ['https://github.com/86Box/86Box.git', 'https://github.com/richardg867/86Box.git']
|
||||
def commitBrowser = ['https://github.com/86Box/86Box/commit/%s', null]
|
||||
def branch = ['master', 'cleanup30']
|
||||
def buildType = ['beta', 'alpha']
|
||||
def buildBranch = env.JOB_BASE_NAME.contains('-') ? 1 : 0
|
||||
|
||||
def osArchs = [
|
||||
'Windows': ['32', '64'],
|
||||
@@ -152,8 +155,8 @@ pipeline {
|
||||
|
||||
parameters {
|
||||
string(name: 'BUILD_TYPE',
|
||||
defaultValue: 'beta', /* !!! CHANGE HERE !!! for build type */
|
||||
description: "Build type to pass on to CMake. Should only be changed for one-off builds, otherwise change the default on .ci/Jenkinsfile")
|
||||
defaultValue: buildType[buildBranch],
|
||||
description: "Build type to pass on to CMake (on main builds) or feature branch identifier (on branch builds).")
|
||||
}
|
||||
|
||||
stages {
|
||||
@@ -186,24 +189,33 @@ pipeline {
|
||||
retry(10) {
|
||||
node('citadel && !Windows') {
|
||||
/* Run git clone. */
|
||||
gitClone(repository, branch)
|
||||
gitClone(repository[buildBranch], branch[buildBranch])
|
||||
|
||||
/* Clean workspace, in case this is running in a non-build node. */
|
||||
cleanWs()
|
||||
}
|
||||
}
|
||||
|
||||
/* Determine build metadata. */
|
||||
def buildFlags = "-D \"BUILD_TYPE=$BUILD_TYPE\" -D \"EMU_BUILD=build ${env.BUILD_NUMBER}\" -D \"EMU_BUILD_NUM=${env.BUILD_NUMBER}\""
|
||||
def buildSuffix = "-b${env.BUILD_NUMBER}"
|
||||
if (buildBranch > 0) {
|
||||
def date = new Date().format("yyyyMMdd")
|
||||
buildFlags = "-D \"BUILD_TYPE=${buildType[buildBranch]}\" -D \"EMU_BUILD=${env.JOB_BASE_NAME.split('-')[1]} build $date.$BUILD_TYPE\""
|
||||
buildSuffix = "-$date-$BUILD_TYPE"
|
||||
}
|
||||
|
||||
/* Create source tarball. */
|
||||
try {
|
||||
retry(10) {
|
||||
node('Linux') {
|
||||
/* Run git clone. */
|
||||
gitClone(repository, branch)
|
||||
gitClone(repository[buildBranch], branch[buildBranch])
|
||||
|
||||
/* Switch to temp directory. */
|
||||
dir("${env.WORKSPACE_TMP}/output") {
|
||||
/* Run source tarball creation process. */
|
||||
def packageName = "${env.JOB_BASE_NAME}-Source-b${env.BUILD_NUMBER}"
|
||||
def packageName = "${env.JOB_BASE_NAME}-Source$buildSuffix"
|
||||
if (runBuild("-s \"$packageName\"") == 0) {
|
||||
/* Archive resulting artifacts. */
|
||||
archiveArtifacts artifacts: "$packageName*"
|
||||
@@ -238,15 +250,15 @@ pipeline {
|
||||
node(os) {
|
||||
stage(combination) {
|
||||
/* Run git clone. */
|
||||
gitClone(repository, branch)
|
||||
gitClone(repository[buildBranch], branch[buildBranch])
|
||||
|
||||
/* Switch to output directory. */
|
||||
dir("${env.WORKSPACE_TMP}/output") {
|
||||
/* Run build process. */
|
||||
def packageName = "${env.JOB_BASE_NAME}${dynarecSlugs[dynarec]}${presetSlugs[preset]}-$os-$arch-b${env.BUILD_NUMBER}"
|
||||
def packageName = "${env.JOB_BASE_NAME}${dynarecSlugs[dynarec]}${presetSlugs[preset]}-$os-$arch$buildSuffix"
|
||||
def ret = -1
|
||||
dir("${dynarecNames[dynarec]}/$os - ${archNames[arch]}") {
|
||||
ret = runBuild("-b \"$packageName\" \"$arch\" ${presetFlags[preset]} ${dynarecFlags[dynarec]} ${osFlags[os]} -D \"BUILD_TYPE=$BUILD_TYPE\" -D \"EMU_BUILD=build ${env.BUILD_NUMBER}\" -D \"EMU_BUILD_NUM=${env.BUILD_NUMBER}\"")
|
||||
ret = runBuild("-b \"$packageName\" \"$arch\" ${presetFlags[preset]} ${dynarecFlags[dynarec]} ${osFlags[os]} $buildFlags")
|
||||
}
|
||||
|
||||
if (ret == 0) {
|
||||
@@ -279,7 +291,7 @@ pipeline {
|
||||
always {
|
||||
script {
|
||||
/* Send out build notifications. */
|
||||
if (!env.JOB_BASE_NAME.contains('TestBuildPleaseIgnore')) {
|
||||
if (commitBrowser[buildBranch]) {
|
||||
try {
|
||||
/* Notify Discord. */
|
||||
def result = currentBuild.currentResult.toLowerCase()
|
||||
@@ -290,7 +302,7 @@ pipeline {
|
||||
description: "**Status:** ${result}\n\u2060", /* word joiner character forces a blank line */
|
||||
enableArtifactsList: false,
|
||||
showChangeset: true,
|
||||
scmWebUrl: commitBrowser
|
||||
scmWebUrl: commitBrowser[buildBranch]
|
||||
|
||||
/* Notify IRC, which needs a node for whatever reason. */
|
||||
node('citadel') {
|
||||
|
||||
81
.ci/build.sh
@@ -295,7 +295,7 @@ then
|
||||
fi
|
||||
|
||||
# Install the latest versions for any missing packages (if the specified version couldn't be installed).
|
||||
pkgs="make git"
|
||||
pkgs="git"
|
||||
while IFS=" " read pkg version
|
||||
do
|
||||
prefixed_pkg="$MINGW_PACKAGE_PREFIX-$pkg"
|
||||
@@ -328,7 +328,7 @@ else
|
||||
esac
|
||||
|
||||
# Establish general dependencies.
|
||||
pkgs="cmake pkg-config git imagemagick wget p7zip-full wayland-protocols tar gzip file"
|
||||
pkgs="cmake ninja-build pkg-config git wget p7zip-full wayland-protocols tar gzip file"
|
||||
if [ "$(dpkg --print-architecture)" = "$arch_deb" ]
|
||||
then
|
||||
pkgs="$pkgs build-essential"
|
||||
@@ -405,7 +405,7 @@ fi
|
||||
echo [-] Cleaning workspace
|
||||
if [ -d "build" ]
|
||||
then
|
||||
MAKEFLAGS=-j$(nproc) cmake --build build --target clean 2> /dev/null
|
||||
cmake --build build -j$(nproc) --target clean 2> /dev/null
|
||||
rm -rf build
|
||||
fi
|
||||
find . \( -name Makefile -o -name CMakeCache.txt -o -name CMakeFiles \) -exec rm -rf "{}" \; 2> /dev/null
|
||||
@@ -438,7 +438,7 @@ year=$(date +%Y)
|
||||
|
||||
# Run CMake.
|
||||
echo [-] Running CMake with flags [$cmake_flags $cmake_flags_extra]
|
||||
eval cmake -G \"Unix Makefiles\" -B build $cmake_flags $cmake_flags_extra .
|
||||
eval cmake -G Ninja $cmake_flags $cmake_flags_extra -S . -B build
|
||||
status=$?
|
||||
if [ $status -ne 0 ]
|
||||
then
|
||||
@@ -447,13 +447,12 @@ then
|
||||
fi
|
||||
|
||||
# Run actual build.
|
||||
make_flags=-j$(nproc)
|
||||
echo [-] Running build with make flags [$make_flags]
|
||||
MAKEFLAGS=$make_flags cmake --build build
|
||||
echo [-] Running build
|
||||
cmake --build build -j$(nproc)
|
||||
status=$?
|
||||
if [ $status -ne 0 ]
|
||||
then
|
||||
echo [!] Make failed with status [$status]
|
||||
echo [!] Build failed with status [$status]
|
||||
exit 4
|
||||
fi
|
||||
|
||||
@@ -536,15 +535,13 @@ else
|
||||
# workaround until a newer version of openal-soft trickles down to Debian repos.
|
||||
if [ -d "openal-soft-1.21.1" ]
|
||||
then
|
||||
rm -rf openal-soft-1.21.1/build/*
|
||||
rm -rf openal-soft-1.21.1/build
|
||||
else
|
||||
wget -qO - https://github.com/kcat/openal-soft/archive/refs/tags/1.21.1.tar.gz | tar zxf -
|
||||
fi
|
||||
cd openal-soft-1.21.1/build
|
||||
[ -e Makefile ] && make clean
|
||||
cmake -G "Unix Makefiles" -D "CMAKE_TOOLCHAIN_FILE=$cwd_root/toolchain.cmake" -D "CMAKE_INSTALL_PREFIX=$cwd_root/archive_tmp/usr" ..
|
||||
make -j$(nproc) install || exit 99
|
||||
cd "$cwd_root"
|
||||
cmake -G Ninja -D "CMAKE_TOOLCHAIN_FILE=$cwd_root/toolchain.cmake" -D "CMAKE_INSTALL_PREFIX=$cwd_root/archive_tmp/usr" -S openal-soft-1.21.1 -B openal-soft-1.21.1/build || exit 99
|
||||
cmake --build openal-soft-1.21.1/build -j$(nproc) || exit 99
|
||||
cmake --install openal-soft-1.21.1/build || exit 99
|
||||
|
||||
# Build SDL2 without sound systems.
|
||||
sdl_ss=OFF
|
||||
@@ -557,11 +554,9 @@ else
|
||||
else
|
||||
wget -qO - https://github.com/FNA-XNA/FAudio/archive/refs/tags/22.03.tar.gz | tar zxf -
|
||||
fi
|
||||
mkdir FAudio-22.03/build
|
||||
cd FAudio-22.03/build
|
||||
cmake -G "Unix Makefiles" -D "CMAKE_TOOLCHAIN_FILE=$cwd_root/toolchain.cmake" -D "CMAKE_INSTALL_PREFIX=$cwd_root/archive_tmp/usr" ..
|
||||
make -j$(nproc) install || exit 99
|
||||
cd "$cwd_root"
|
||||
cmake -G Ninja -D "CMAKE_TOOLCHAIN_FILE=$cwd_root/toolchain.cmake" -D "CMAKE_INSTALL_PREFIX=$cwd_root/archive_tmp/usr" -S FAudio-22.03 -B FAudio-22.03/build || exit 99
|
||||
cmake --build FAudio-22.03/build -j$(nproc) || exit 99
|
||||
cmake --install FAudio-22.03/build || exit 99
|
||||
|
||||
# Build SDL2 with sound systems.
|
||||
sdl_ss=ON
|
||||
@@ -570,35 +565,33 @@ else
|
||||
# Build rtmidi without JACK support to remove the dependency on libjack.
|
||||
if [ -d "rtmidi-4.0.0" ]
|
||||
then
|
||||
rm -rf rtmidi-4.0.0/CMakeCache.txt rtmidi-4.0.0/CMakeFiles
|
||||
rm -rf rtmidi-4.0.0/build
|
||||
else
|
||||
wget -qO - http://www.music.mcgill.ca/~gary/rtmidi/release/rtmidi-4.0.0.tar.gz | tar zxf -
|
||||
fi
|
||||
cwd_root=$(pwd)
|
||||
cd rtmidi-4.0.0
|
||||
[ -e Makefile ] && make clean
|
||||
cmake -G "Unix Makefiles" -D RTMIDI_API_JACK=OFF -D "CMAKE_TOOLCHAIN_FILE=$cwd_root/toolchain.cmake" -D "CMAKE_INSTALL_PREFIX=$cwd_root/archive_tmp/usr" .
|
||||
make -j$(nproc) install || exit 99
|
||||
cd "$cwd_root"
|
||||
cmake -G Ninja -D RTMIDI_API_JACK=OFF -D "CMAKE_TOOLCHAIN_FILE=$cwd_root/toolchain.cmake" -D "CMAKE_INSTALL_PREFIX=$cwd_root/archive_tmp/usr" -S rtmidi-4.0.0 -B rtmidi-4.0.0/build || exit 99
|
||||
cmake --build rtmidi-4.0.0/build -j$(nproc) || exit 99
|
||||
cmake --install rtmidi-4.0.0/build || exit 99
|
||||
|
||||
# Build SDL2 for joystick support with most components disabled to remove the dependencies on PulseAudio and libdrm.
|
||||
# Build SDL2 for joystick and FAudio support, with most components
|
||||
# disabled to remove the dependencies on PulseAudio and libdrm.
|
||||
if [ ! -d "SDL2-2.0.20" ]
|
||||
then
|
||||
wget -qO - https://www.libsdl.org/release/SDL2-2.0.20.tar.gz | tar zxf -
|
||||
fi
|
||||
rm -rf sdlbuild
|
||||
mkdir sdlbuild
|
||||
cd sdlbuild
|
||||
cmake -G "Unix Makefiles" -D SDL_DISKAUDIO=OFF -D SDL_DIRECTFB_SHARED=OFF -D SDL_OPENGL=OFF -D SDL_OPENGLES=OFF -D SDL_OSS=OFF -D SDL_ALSA=$sdl_ss \
|
||||
-D SDL_ALSA_SHARED=$sdl_ss -D SDL_JACK=$sdl_ss -D SDL_JACK_SHARED=$sdl_ss -D SDL_ESD=OFF -D SDL_ESD_SHARED=OFF -D SDL_PIPEWIRE=$sdl_ss -D SDL_PIPEWIRE_SHARED=$sdl_ss \
|
||||
-D SDL_PULSEAUDIO=$sdl_ss -D SDL_PULSEAUDIO_SHARED=$sdl_ss -D SDL_ARTS=OFF -D SDL_ARTS_SHARED=OFF -D SDL_NAS=$sdl_ss -D SDL_NAS_SHARED=$sdl_ss -D SDL_SNDIO=$sdl_ss \
|
||||
-D SDL_SNDIO_SHARED=$sdl_ss -D SDL_FUSIONSOUND=OFF -D SDL_FUSIONSOUND_SHARED=OFF -D SDL_LIBSAMPLERATE=$sdl_ss -D SDL_LIBSAMPLERATE_SHARED=$sdl_ss -D SDL_X11=OFF \
|
||||
-D SDL_X11_SHARED=OFF -D SDL_WAYLAND=OFF -D SDL_WAYLAND_SHARED=OFF -D SDL_WAYLAND_LIBDECOR=OFF -D SDL_WAYLAND_LIBDECOR_SHARED=OFF \
|
||||
-D SDL_WAYLAND_QT_TOUCH=OFF -D SDL_RPI=OFF -D SDL_VIVANTE=OFF -D SDL_VULKAN=OFF -D SDL_KMSDRM=OFF -D SDL_KMSDRM_SHARED=OFF -D SDL_OFFSCREEN=OFF \
|
||||
-D SDL_HIDAPI_JOYSTICK=ON -D SDL_VIRTUAL_JOYSTICK=ON -D SDL_SHARED=ON -D SDL_STATIC=OFF -S "$cwd_root/SDL2-2.0.20" \
|
||||
-D "CMAKE_TOOLCHAIN_FILE=$cwd_root/toolchain.cmake" -D "CMAKE_INSTALL_PREFIX=$cwd_root/archive_tmp/usr"
|
||||
make -j$(nproc) install || exit 99
|
||||
cd "$cwd_root"
|
||||
cmake -G Ninja -D SDL_DISKAUDIO=OFF -D SDL_DIRECTFB_SHARED=OFF -D SDL_OPENGL=OFF -D SDL_OPENGLES=OFF -D SDL_OSS=OFF -D SDL_ALSA=$sdl_ss \
|
||||
-D SDL_ALSA_SHARED=$sdl_ss -D SDL_JACK=$sdl_ss -D SDL_JACK_SHARED=$sdl_ss -D SDL_ESD=OFF -D SDL_ESD_SHARED=OFF -D SDL_PIPEWIRE=$sdl_ss \
|
||||
-D SDL_PIPEWIRE_SHARED=$sdl_ss -D SDL_PULSEAUDIO=$sdl_ss -D SDL_PULSEAUDIO_SHARED=$sdl_ss -D SDL_ARTS=OFF -D SDL_ARTS_SHARED=OFF \
|
||||
-D SDL_NAS=$sdl_ss -D SDL_NAS_SHARED=$sdl_ss -D SDL_SNDIO=$sdl_ss -D SDL_SNDIO_SHARED=$sdl_ss -D SDL_FUSIONSOUND=OFF \
|
||||
-D SDL_FUSIONSOUND_SHARED=OFF -D SDL_LIBSAMPLERATE=$sdl_ss -D SDL_LIBSAMPLERATE_SHARED=$sdl_ss -D SDL_X11=OFF -D SDL_X11_SHARED=OFF \
|
||||
-D SDL_WAYLAND=OFF -D SDL_WAYLAND_SHARED=OFF -D SDL_WAYLAND_LIBDECOR=OFF -D SDL_WAYLAND_LIBDECOR_SHARED=OFF -D SDL_WAYLAND_QT_TOUCH=OFF \
|
||||
-D SDL_RPI=OFF -D SDL_VIVANTE=OFF -D SDL_VULKAN=OFF -D SDL_KMSDRM=OFF -D SDL_KMSDRM_SHARED=OFF -D SDL_OFFSCREEN=OFF \
|
||||
-D SDL_HIDAPI_JOYSTICK=ON -D SDL_VIRTUAL_JOYSTICK=ON -D SDL_SHARED=ON -D SDL_STATIC=OFF -S SDL2-2.0.20 -B sdlbuild \
|
||||
-D "CMAKE_TOOLCHAIN_FILE=$cwd_root/toolchain.cmake" -D "CMAKE_INSTALL_PREFIX=$cwd_root/archive_tmp/usr" || exit 99
|
||||
cmake --build sdlbuild -j$(nproc) || exit 99
|
||||
cmake --install sdlbuild || exit 99
|
||||
|
||||
# Archive Discord Game SDK library.
|
||||
7z e -y -o"archive_tmp/usr/lib" discord_game_sdk.zip "lib/$arch_discord/discord_game_sdk.so"
|
||||
@@ -615,11 +608,11 @@ else
|
||||
echo $pkg $version >> archive_tmp/README
|
||||
done
|
||||
|
||||
# Archive icon, while also shrinking it to 512x512 if necessary.
|
||||
convert src/win/assets/$project_lower.png -resize '512x512>' icon.png
|
||||
icon_base="$(identify -format 'archive_tmp/usr/share/icons/%wx%h' icon.png)"
|
||||
# Archive icons.
|
||||
icon_base=archive_tmp/usr/share/icons
|
||||
mkdir -p "$icon_base"
|
||||
mv icon.png "$icon_base/$project_lower.png"
|
||||
cp -rp src/unix/assets/[0-9]*x[0-9]* "$icon_base/"
|
||||
icon_name=$(ls "$icon_base/"[0-9]*x[0-9]*/* | head -1 | grep -oP '/\K([^/]+)(?=\.[^\.]+$)')
|
||||
|
||||
# Archive executable, while also stripping it if requested.
|
||||
mkdir -p archive_tmp/usr/local/bin
|
||||
@@ -676,8 +669,8 @@ else
|
||||
rm -rf "$project-"*".AppImage"
|
||||
|
||||
# Run appimage-builder in extract-and-run mode for Docker compatibility.
|
||||
project="$project" project_lower="$project_lower" project_version="$project_version" arch_deb="$arch_deb" arch_appimage="$arch_appimage" \
|
||||
APPIMAGE_EXTRACT_AND_RUN=1 ./appimage-builder.AppImage --recipe .ci/AppImageBuilder.yml
|
||||
project="$project" project_lower="$project_lower" project_version="$project_version" project_icon="$icon_name" arch_deb="$arch_deb" \
|
||||
arch_appimage="$arch_appimage" APPIMAGE_EXTRACT_AND_RUN=1 ./appimage-builder.AppImage --recipe .ci/AppImageBuilder.yml
|
||||
status=$?
|
||||
|
||||
# Rename AppImage to the final name if the build succeeded.
|
||||
|
||||
@@ -13,7 +13,7 @@ gcc-objc 11.2.0-4
|
||||
gcc 11.2.0-4
|
||||
libgccjit 11.2.0-4
|
||||
tools-git 9.0.0.6357.eac8c38c1-1
|
||||
make 4.3-1
|
||||
ninja 1.10.2-3
|
||||
pkgconf 1.8.0-2
|
||||
openal 1.21.1-3
|
||||
libpng 1.6.37-6
|
||||
|
||||
@@ -99,9 +99,15 @@ RecompOpFn recomp_opcodes_0f[512] =
|
||||
/*b0*/ NULL, NULL, ropLSS_16, NULL, ropLFS_16, ropLGS_16, ropMOVZX_16_8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, ropMOVSX_16_8, NULL,
|
||||
|
||||
/*c0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
#if defined __ARM_EABI__ || defined _ARM_ || defined _M_ARM || defined __aarch64__ || defined _M_ARM64
|
||||
/*d0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
/*e0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
/*f0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
#else
|
||||
/*d0*/ NULL, NULL, NULL, NULL, NULL, ropPMULLW, NULL, NULL, ropPSUBUSB, ropPSUBUSW, NULL, ropPAND, ropPADDUSB, ropPADDUSW, NULL, ropPANDN,
|
||||
/*e0*/ NULL, NULL, NULL, NULL, NULL, ropPMULHW, NULL, NULL, ropPSUBSB, ropPSUBSW, NULL, ropPOR, ropPADDSB, ropPADDSW, NULL, ropPXOR,
|
||||
/*f0*/ NULL, NULL, NULL, NULL, NULL, ropPMADDWD, NULL, NULL, ropPSUBB, ropPSUBW, ropPSUBD, NULL, ropPADDB, ropPADDW, ropPADDD, NULL,
|
||||
#endif
|
||||
|
||||
/*32-bit data*/
|
||||
/* 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f*/
|
||||
@@ -126,13 +132,22 @@ RecompOpFn recomp_opcodes_0f[512] =
|
||||
/*b0*/ NULL, NULL, ropLSS_32, NULL, ropLFS_32, ropLGS_32, ropMOVZX_32_8, ropMOVZX_32_16, NULL, NULL, NULL, NULL, NULL, NULL, ropMOVSX_32_8, ropMOVSX_32_16,
|
||||
|
||||
/*c0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
#if defined __ARM_EABI__ || defined _ARM_ || defined _M_ARM || defined __aarch64__ || defined _M_ARM64
|
||||
/*d0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
/*e0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
/*f0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
#else
|
||||
/*d0*/ NULL, NULL, NULL, NULL, NULL, ropPMULLW, NULL, NULL, ropPSUBUSB, ropPSUBUSW, NULL, ropPAND, ropPADDUSB, ropPADDUSW, NULL, ropPANDN,
|
||||
/*e0*/ NULL, NULL, NULL, NULL, NULL, ropPMULHW, NULL, NULL, ropPSUBSB, ropPSUBSW, NULL, ropPOR, ropPADDSB, ropPADDSW, NULL, ropPXOR,
|
||||
/*f0*/ NULL, NULL, NULL, NULL, NULL, ropPMADDWD, NULL, NULL, ropPSUBB, ropPSUBW, ropPSUBD, NULL, ropPADDB, ropPADDW, ropPADDD, NULL,
|
||||
#endif
|
||||
};
|
||||
|
||||
RecompOpFn recomp_opcodes_3DNOW[256] =
|
||||
{
|
||||
#if defined __ARM_EABI__ || defined _ARM_ || defined _M_ARM || defined __aarch64__ || defined _M_ARM64
|
||||
0
|
||||
#else
|
||||
/* 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f*/
|
||||
/*00*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, ropPI2FD, NULL, NULL,
|
||||
/*10*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, ropPF2ID, NULL, NULL,
|
||||
@@ -153,6 +168,7 @@ RecompOpFn recomp_opcodes_3DNOW[256] =
|
||||
/*d0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
/*e0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
/*f0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
#endif
|
||||
};
|
||||
|
||||
RecompOpFn recomp_opcodes_d8[512] =
|
||||
|
||||
@@ -88,11 +88,13 @@
|
||||
|
||||
#define ISAMEM_IBMXT_CARD 0
|
||||
#define ISAMEM_GENXT_CARD 1
|
||||
#define ISAMEM_IBMAT_CARD 2
|
||||
#define ISAMEM_GENAT_CARD 3
|
||||
#define ISAMEM_P5PAK_CARD 4
|
||||
#define ISAMEM_A6PAK_CARD 5
|
||||
#define ISAMEM_EMS5150_CARD 6
|
||||
#define ISAMEM_RAMCARD_CARD 2
|
||||
#define ISAMEM_SYSTEMCARD_CARD 3
|
||||
#define ISAMEM_IBMAT_CARD 4
|
||||
#define ISAMEM_GENAT_CARD 5
|
||||
#define ISAMEM_P5PAK_CARD 6
|
||||
#define ISAMEM_A6PAK_CARD 7
|
||||
#define ISAMEM_EMS5150_CARD 8
|
||||
#define ISAMEM_EV159_CARD 10
|
||||
#define ISAMEM_RAMPAGEXT_CARD 11
|
||||
#define ISAMEM_ABOVEBOARD_CARD 12
|
||||
@@ -416,6 +418,8 @@ isamem_init(const device_t *info)
|
||||
switch(dev->board) {
|
||||
case ISAMEM_IBMXT_CARD: /* IBM PC/XT Memory Expansion Card */
|
||||
case ISAMEM_GENXT_CARD: /* Generic PC/XT Memory Expansion Card */
|
||||
case ISAMEM_RAMCARD_CARD: /* Microsoft RAMCard for IBM PC */
|
||||
case ISAMEM_SYSTEMCARD_CARD: /* Microsoft SystemCard */
|
||||
case ISAMEM_P5PAK_CARD: /* Paradise Systems 5-PAK */
|
||||
case ISAMEM_A6PAK_CARD: /* AST SixPakPlus */
|
||||
dev->total_size = device_get_config_int("size");
|
||||
@@ -736,6 +740,66 @@ static const device_t genericxt_device = {
|
||||
.config = genericxt_config
|
||||
};
|
||||
|
||||
static const device_config_t msramcard_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"size", "Memory Size", CONFIG_SPINNER, "", 64, "",
|
||||
{ 0, 256, 64 },
|
||||
{ { 0 } }
|
||||
},
|
||||
{
|
||||
"start", "Start Address", CONFIG_SPINNER, "", 0, "",
|
||||
{ 0, 624, 64 },
|
||||
{ { 0 } }
|
||||
},
|
||||
{ "", "", -1 }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
static const device_t msramcard_device = {
|
||||
.name = "Microsoft RAMCard for IBM PC",
|
||||
.internal_name = "msramcard",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = ISAMEM_RAMCARD_CARD,
|
||||
.init = isamem_init,
|
||||
.close = isamem_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = msramcard_config
|
||||
};
|
||||
|
||||
static const device_config_t mssystemcard_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"size", "Memory Size", CONFIG_SPINNER, "", 64, "",
|
||||
{ 0, 256, 64 },
|
||||
{ { 0 } }
|
||||
},
|
||||
{
|
||||
"start", "Start Address", CONFIG_SPINNER, "", 0, "",
|
||||
{ 0, 624, 64 },
|
||||
{ { 0 } }
|
||||
},
|
||||
{ "", "", -1 }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
static const device_t mssystemcard_device = {
|
||||
.name = "Microsoft SystemCard",
|
||||
.internal_name = "mssystemcard",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = ISAMEM_SYSTEMCARD_CARD,
|
||||
.init = isamem_init,
|
||||
.close = isamem_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = mssystemcard_config
|
||||
};
|
||||
|
||||
static const device_config_t ibmat_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
@@ -1178,25 +1242,27 @@ static const struct {
|
||||
const device_t *dev;
|
||||
} boards[] = {
|
||||
// clang-format off
|
||||
{ &isa_none_device },
|
||||
{ &ibmxt_device },
|
||||
{ &genericxt_device },
|
||||
{ &ibmat_device },
|
||||
{ &genericat_device },
|
||||
{ &p5pak_device },
|
||||
{ &a6pak_device },
|
||||
{ &ems5150_device },
|
||||
{ &ev159_device },
|
||||
{ &isa_none_device },
|
||||
{ &ibmxt_device },
|
||||
{ &genericxt_device },
|
||||
{ &msramcard_device },
|
||||
{ &mssystemcard_device },
|
||||
{ &ibmat_device },
|
||||
{ &genericat_device },
|
||||
{ &p5pak_device },
|
||||
{ &a6pak_device },
|
||||
{ &ems5150_device },
|
||||
{ &ev159_device },
|
||||
#if defined(DEV_BRANCH) && defined(USE_ISAMEM_BRAT)
|
||||
{ &brat_device },
|
||||
{ &brat_device },
|
||||
#endif
|
||||
#if defined(DEV_BRANCH) && defined(USE_ISAMEM_RAMPAGE)
|
||||
{ &rampage_device },
|
||||
{ &rampage_device },
|
||||
#endif
|
||||
#if defined(DEV_BRANCH) && defined(USE_ISAMEM_IAB)
|
||||
{ &iab_device },
|
||||
{ &iab_device },
|
||||
#endif
|
||||
{ NULL }
|
||||
{ NULL }
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
# define EMU_DEVICE_H
|
||||
|
||||
|
||||
#define CONFIG_END -1
|
||||
#define CONFIG_STRING 0
|
||||
#define CONFIG_INT 1
|
||||
#define CONFIG_BINARY 2
|
||||
|
||||
@@ -407,6 +407,7 @@ extern int machine_at_cmdpc_init(const machine_t *);
|
||||
extern int machine_at_portableii_init(const machine_t *);
|
||||
extern int machine_at_portableiii_init(const machine_t *);
|
||||
extern int machine_at_portableiii386_init(const machine_t *);
|
||||
extern int machine_at_deskpro386_init(const machine_t *);
|
||||
#ifdef EMU_DEVICE_H
|
||||
extern const device_t *at_cpqiii_get_device(void);
|
||||
#endif
|
||||
|
||||
@@ -892,3 +892,19 @@ machine_at_portableiii386_init(const machine_t *model)
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
machine_at_deskpro386_init(const machine_t *model)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = bios_load_linearr("roms/machines/deskpro386/1986-09-04-HI.json.bin",
|
||||
0x000fc000, 65536, 0);
|
||||
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_compaq_init(model, COMPAQ_DESKPRO386);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -303,6 +303,7 @@ const machine_t machines[] = {
|
||||
/* Has IBM AT KBC firmware. */
|
||||
{ "[C&T 386] Samsung SPC-6000A", "spc6000a", MACHINE_TYPE_386DX, CPU_PKG_386DX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_IDE, 1024, 32768, 1024, 127, machine_at_spc6000a_init, NULL },
|
||||
/* Uses Compaq KBC firmware. */
|
||||
{ "[ISA] Compaq Deskpro 386", "deskpro386", MACHINE_TYPE_386DX, CPU_PKG_386DX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_IDE, 1024, 14336, 1024, 127, machine_at_deskpro386_init, NULL },
|
||||
{ "[ISA] Compaq Portable III (386)", "portableiii386", MACHINE_TYPE_386DX, CPU_PKG_386DX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_IDE | MACHINE_VIDEO, 1024, 14336, 1024, 127, machine_at_portableiii386_init, at_cpqiii_get_device },
|
||||
/* Has IBM AT KBC firmware. */
|
||||
{ "[ISA] Micronics 09-00021", "micronics386", MACHINE_TYPE_386DX, CPU_PKG_386DX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 8192, 128, 127, machine_at_micronics386_init, NULL },
|
||||
|
||||
@@ -252,7 +252,7 @@ static MVHDGeom create_drive_vhd_dynamic(const QString& fileName, uint16_t cyl,
|
||||
static MVHDGeom create_drive_vhd_diff(const QString& fileName, const QString& parentFileName, int blocksize) {
|
||||
int vhd_error = 0;
|
||||
QByteArray filenameBytes = fileName.toUtf8();
|
||||
QByteArray parentFilenameBytes = fileName.toUtf8();
|
||||
QByteArray parentFilenameBytes = parentFileName.toUtf8();
|
||||
MVHDCreationOptions options;
|
||||
options.block_size_in_sectors = blocksize;
|
||||
options.path = filenameBytes.data();
|
||||
|
||||
@@ -221,9 +221,9 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
|
||||
connect(this, &MainWindow::resizeContents, this, [this](int w, int h) {
|
||||
if (!QApplication::platformName().contains("eglfs") && vid_resize == 0) {
|
||||
w = qRound(w / (!dpi_scale ? util::screenOfWidget(this)->devicePixelRatio() : 1.));
|
||||
w = (w / (!dpi_scale ? util::screenOfWidget(this)->devicePixelRatio() : 1.));
|
||||
|
||||
int modifiedHeight = qRound(h / (!dpi_scale ? util::screenOfWidget(this)->devicePixelRatio() : 1.))
|
||||
int modifiedHeight = (h / (!dpi_scale ? util::screenOfWidget(this)->devicePixelRatio() : 1.))
|
||||
+ menuBar()->height()
|
||||
+ (statusBar()->height() * !hide_status_bar)
|
||||
+ (ui->toolBar->height() * !hide_tool_bar);
|
||||
@@ -1313,7 +1313,14 @@ void MainWindow::getTitle(wchar_t *title)
|
||||
|
||||
bool MainWindow::eventFilter(QObject* receiver, QEvent* event)
|
||||
{
|
||||
if (this->keyboardGrabber() == this) {
|
||||
if (!dopause && (mouse_capture || !kbd_req_capture)) {
|
||||
if (event->type() == QEvent::Shortcut) {
|
||||
auto shortcutEvent = (QShortcutEvent*)event;
|
||||
if (shortcutEvent->key() == ui->actionExit->shortcut()) {
|
||||
event->accept();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (event->type() == QEvent::KeyPress) {
|
||||
event->accept();
|
||||
this->keyPressEvent((QKeyEvent *) event);
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
# include <stdlib.h>
|
||||
# include <string.h>
|
||||
# include <wchar.h>
|
||||
# ifdef __unix__
|
||||
# include <unistd.h>
|
||||
# endif
|
||||
|
||||
# include <86box/86box.h>
|
||||
# include <86box/config.h>
|
||||
@@ -248,7 +251,12 @@ fluidsynth_init(const device_t *info)
|
||||
|
||||
data->synth = f_new_fluid_synth(data->settings);
|
||||
|
||||
char *sound_font = (char *) device_get_config_string("sound_font");
|
||||
const char *sound_font = (char *) device_get_config_string("sound_font");
|
||||
# ifdef __unix__
|
||||
if (!sound_font || sound_font[0] == 0)
|
||||
sound_font = (access("/usr/share/sounds/sf2/FluidR3_GM.sf2", F_OK) == 0 ? "/usr/share/sounds/sf2/FluidR3_GM.sf2" :
|
||||
(access("/usr/share/soundfonts/default.sf2", F_OK) == 0 ? "/usr/share/soundfonts/default.sf2" : ""));
|
||||
# endif
|
||||
data->sound_font = f_fluid_synth_sfload(data->synth, sound_font, 1);
|
||||
|
||||
if (device_get_config_int("chorus")) {
|
||||
|
||||
@@ -560,12 +560,12 @@ cmi8x38_start_playback(cmi8x38_t *dev)
|
||||
|
||||
i = !(val & 0x01);
|
||||
if (!dev->dma[0].playback_enabled && i)
|
||||
timer_advance_u64(&dev->dma[0].poll_timer, dev->dma[0].timer_latch);
|
||||
timer_set_delay_u64(&dev->dma[0].poll_timer, dev->dma[0].timer_latch);
|
||||
dev->dma[0].playback_enabled = i;
|
||||
|
||||
i = !(val & 0x02);
|
||||
if (!dev->dma[1].playback_enabled && i)
|
||||
timer_advance_u64(&dev->dma[1].poll_timer, dev->dma[1].timer_latch);
|
||||
timer_set_delay_u64(&dev->dma[1].poll_timer, dev->dma[1].timer_latch);
|
||||
dev->dma[1].playback_enabled = i;
|
||||
}
|
||||
|
||||
@@ -722,10 +722,9 @@ cmi8x38_write(uint16_t addr, uint8_t val, void *priv)
|
||||
break;
|
||||
|
||||
case 0x09:
|
||||
#if 0 /* actual CMI8338 behavior unconfirmed; this register is required for the Windows XP driver which outputs 96K */
|
||||
if (dev->type == CMEDIA_CMI8338)
|
||||
return;
|
||||
#endif
|
||||
if (dev->type == CMEDIA_CMI8338)
|
||||
return;
|
||||
|
||||
/* Update sample rate. */
|
||||
dev->io_regs[addr] = val;
|
||||
cmi8x38_speed_changed(dev);
|
||||
@@ -1043,22 +1042,28 @@ cmi8x38_dma_process(void *priv)
|
||||
|
||||
/* Check if the fragment size was reached. */
|
||||
if (--dma->frame_count_fragment <= 0) {
|
||||
cmi8x38_log("CMI8x38: DMA %d fragment size reached at %04X frames left", dma->id, dma->frame_count_dma - 1);
|
||||
|
||||
/* Reset fragment counter. */
|
||||
dma->frame_count_fragment = *((uint16_t *) &dev->io_regs[dma->reg | 0x6]) + 1;
|
||||
|
||||
#ifdef ENABLE_CMI8X38_LOG
|
||||
if (dma->frame_count_fragment > 1) /* avoid log spam if fragment counting is unused, like on the newer WDM drivers (cmudax3) */
|
||||
cmi8x38_log("CMI8x38: DMA %d fragment size reached at %04X frames left", dma->id, dma->frame_count_dma - 1);
|
||||
#endif
|
||||
/* Fire interrupt if requested. */
|
||||
if (dev->io_regs[0x0e] & dma_bit) {
|
||||
cmi8x38_log(", firing interrupt\n");
|
||||
|
||||
#ifdef ENABLE_CMI8X38_LOG
|
||||
if (dma->frame_count_fragment > 1)
|
||||
cmi8x38_log(", firing interrupt\n");
|
||||
#endif
|
||||
/* Set channel interrupt flag. */
|
||||
dev->io_regs[0x10] |= dma_bit;
|
||||
|
||||
/* Fire interrupt. */
|
||||
cmi8x38_update_irqs(dev);
|
||||
} else {
|
||||
cmi8x38_log("\n");
|
||||
#ifdef ENABLE_CMI8X38_LOG
|
||||
if (dma->frame_count_fragment > 1)
|
||||
cmi8x38_log("\n");
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1129,8 +1134,8 @@ cmi8x38_poll(void *priv)
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x03: /* Stereo, 16-bit PCM */
|
||||
switch (dma->channels) { /* multi-channel requires this data format */
|
||||
case 0x03: /* Stereo, 16-bit PCM, with multi-channel capability */
|
||||
switch (dma->channels) {
|
||||
case 2:
|
||||
if ((dma->fifo_end - dma->fifo_pos) >= 4) {
|
||||
*out_l = *((uint16_t *) &dma->fifo[dma->fifo_pos & (sizeof(dma->fifo) - 1)]);
|
||||
|
||||
BIN
src/unix/assets/128x128/net.86box.86Box.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
src/unix/assets/192x192/net.86box.86Box.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
src/unix/assets/256x256/net.86box.86Box.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
src/unix/assets/48x48/net.86box.86Box.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
src/unix/assets/512x512/net.86box.86Box.png
Normal file
|
After Width: | Height: | Size: 77 KiB |
BIN
src/unix/assets/64x64/net.86box.86Box.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
src/unix/assets/72x72/net.86box.86Box.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
123
src/unix/assets/86Box.spec
Normal file
@@ -0,0 +1,123 @@
|
||||
# Fedora RPM spec file for 86Box including roms
|
||||
#
|
||||
# To create RPM files from this spec file, run the following commands:
|
||||
# sudo dnf install rpm-build
|
||||
# mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
|
||||
#
|
||||
# copy this 86Box.spec file to ~/rpmbuild/SPECS and run the following commands:
|
||||
# cd ~/rpmbuild
|
||||
# sudo dnf builddep SPECS/86Box.spec
|
||||
# rpmbuild --undefine=_disable_source_fetch -ba SPECS/86Box.spec
|
||||
#
|
||||
# After a successful build, you can install the RPMs as follows:
|
||||
# sudo dnf install RPMS/$(uname -m)/86Box-3* RPMS/noarch/86Box-roms*
|
||||
|
||||
%global romver 20220319
|
||||
|
||||
Name: 86Box
|
||||
Version: 3.3
|
||||
Release: 1%{?dist}
|
||||
Summary: Classic PC emulator
|
||||
License: GPLv2+
|
||||
URL: https://86box.net
|
||||
|
||||
Source0: https://github.com/86Box/86Box/archive/refs/tags/v%%{version}.tar.gz
|
||||
Source1: https://github.com/86Box/roms/archive/refs/tags/%{romver}.tar.gz
|
||||
|
||||
BuildRequires: cmake
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: extra-cmake-modules
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: libFAudio-devel
|
||||
BuildRequires: libappstream-glib
|
||||
BuildRequires: libevdev-devel
|
||||
BuildRequires: libXi-devel
|
||||
BuildRequires: ninja-build
|
||||
BuildRequires: qt5-linguist
|
||||
BuildRequires: qt5-qtconfiguration-devel
|
||||
BuildRequires: qt5-qtbase-private-devel
|
||||
BuildRequires: qt5-qtbase-static
|
||||
BuildRequires: rtmidi-devel
|
||||
BuildRequires: wayland-devel
|
||||
BuildRequires: SDL2-devel
|
||||
|
||||
Requires: hicolor-icon-theme
|
||||
Requires: fluid-soundfont-gm
|
||||
Requires: 86Box-roms
|
||||
|
||||
%description
|
||||
86Box is a hypervisor and IBM PC system emulator that specializes in
|
||||
running old operating systems and software designed for IBM
|
||||
PC systems and compatibles from 1981 through fairly recent
|
||||
system designs based on the PCI bus.
|
||||
|
||||
It supports various models of PCs, graphics and sound cards, and CPUs.
|
||||
|
||||
%package roms
|
||||
Summary: ROMs for use with 86Box
|
||||
Version: %{romver}
|
||||
License: Proprietary
|
||||
BuildArch: noarch
|
||||
|
||||
%description roms
|
||||
Collection of ROMs for use with 86Box.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -a1
|
||||
|
||||
%build
|
||||
%ifarch i386 x86_64
|
||||
%cmake -DRELEASE=on
|
||||
%else
|
||||
%ifarch arm aarch64
|
||||
%cmake -DRELEASE=on -DNEW_DYNAREC=on
|
||||
%else
|
||||
%cmake -DRELEASE=on -DDYNAREC=off
|
||||
%endif
|
||||
%endif
|
||||
%cmake_build
|
||||
|
||||
%install
|
||||
# install base package
|
||||
%cmake_install
|
||||
|
||||
# install icons
|
||||
for i in 48 64 72 96 128 192 256 512; do
|
||||
mkdir -p $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${i}x${i}/apps
|
||||
cp src/unix/assets/${i}x${i}/net.86box.86Box.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${i}x${i}/apps/net.86box.86Box.png
|
||||
done
|
||||
|
||||
# install desktop file
|
||||
desktop-file-install --dir=%{buildroot}%{_datadir}/applications src/unix/assets/net.86box.86Box.desktop
|
||||
|
||||
# install metadata
|
||||
mkdir -p %{buildroot}%{_metainfodir}
|
||||
cp src/unix/assets/net.86box.86Box.metainfo.xml %{buildroot}%{_metainfodir}
|
||||
appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/net.86box.86Box.metainfo.xml
|
||||
|
||||
# install roms
|
||||
pushd roms-%{romver}
|
||||
mkdir -p %{buildroot}%{_datadir}/%{name}/roms
|
||||
cp -a * %{buildroot}%{_datadir}/%{name}/roms/
|
||||
# hack to create symlink in /usr/bin
|
||||
cd %{buildroot}%{_bindir}
|
||||
ln -s ../share/%{name}/roms roms
|
||||
popd
|
||||
|
||||
# files part of the main package
|
||||
%files
|
||||
%license COPYING
|
||||
%{_bindir}/86Box
|
||||
%{_datadir}/applications/net.86box.86Box.desktop
|
||||
%{_metainfodir}/net.86box.86Box.metainfo.xml
|
||||
%{_datadir}/icons/hicolor/*/apps/net.86box.86Box.png
|
||||
|
||||
# files part of the rom package
|
||||
%files roms
|
||||
%license roms-%{romver}/LICENSE
|
||||
%{_datadir}/%{name}/roms
|
||||
%{_bindir}/roms
|
||||
|
||||
%changelog
|
||||
* Sat Mar 19 2022 Robert de Rooy <robert.de.rooy[AT]gmail.com> 3.3-1
|
||||
- Initial RPM release
|
||||
BIN
src/unix/assets/96x96/net.86box.86Box.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
9
src/unix/assets/net.86box.86Box.desktop
Normal file
@@ -0,0 +1,9 @@
|
||||
[Desktop Entry]
|
||||
Name=86Box
|
||||
GenericName=Classic PC emulator
|
||||
Comment=An emulator for classic IBM PC clones
|
||||
Exec=86Box
|
||||
Icon=net.86box.86Box
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=System;Emulator
|
||||
32
src/unix/assets/net.86box.86Box.metainfo.xml
Normal file
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<component type="desktop">
|
||||
<id>net.86box.86Box</id>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<project_license>GPL-2.0-or-later</project_license>
|
||||
<name>86Box</name>
|
||||
<summary>An emulator for classic IBM PC clones</summary>
|
||||
<categories>
|
||||
<category>Emulation</category>
|
||||
</categories>
|
||||
<launchable type="desktop-id">net.86box.86Box.desktop</launchable>
|
||||
<releases>
|
||||
<release version="3.3" date="2022-03-19"/>
|
||||
</releases>
|
||||
<content_rating type="oars-1.1" />
|
||||
<description>
|
||||
<p>
|
||||
86Box is a hypervisor and IBM PC system emulator that specializes
|
||||
in running old operating systems and software designed for IBM
|
||||
PC systems and compatibles from 1981 through fairly recent
|
||||
system designs based on the PCI bus.
|
||||
|
||||
It supports various models of PCs, graphics and sound
|
||||
cards, and CPUs.
|
||||
</p>
|
||||
<p>
|
||||
To use 86Box you will need to dump BIOS ROMs for each machine you
|
||||
want to emulate.
|
||||
</p>
|
||||
</description>
|
||||
<url type="homepage">https://86box.net</url>
|
||||
</component>
|
||||
@@ -179,16 +179,16 @@ agpgart_close(void *priv)
|
||||
free(dev);
|
||||
}
|
||||
|
||||
|
||||
const device_t agpgart_device =
|
||||
{
|
||||
"AGP Graphics Address Remapping Table",
|
||||
"agpgart",
|
||||
DEVICE_PCI,
|
||||
0,
|
||||
agpgart_init, agpgart_close, NULL,
|
||||
{ NULL },
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t agpgart_device = {
|
||||
.name = "AGP Graphics Address Remapping Table",
|
||||
.internal_name = "agpgart",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = 0,
|
||||
.init = agpgart_init,
|
||||
.close = agpgart_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -281,45 +281,47 @@ static void ati18800_force_redraw(void *p)
|
||||
}
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_VGAWONDER)
|
||||
const device_t ati18800_wonder_device =
|
||||
{
|
||||
"ATI-18800",
|
||||
"ati18800w",
|
||||
DEVICE_ISA, ATI18800_WONDER,
|
||||
ati18800_init,
|
||||
ati18800_close,
|
||||
NULL,
|
||||
{ ati18800_wonder_available },
|
||||
ati18800_speed_changed,
|
||||
ati18800_force_redraw,
|
||||
NULL
|
||||
const device_t ati18800_wonder_device = {
|
||||
.name = "ATI-18800",
|
||||
.internal_name = "ati18800w",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = ATI18800_WONDER,
|
||||
.init = ati18800_init,
|
||||
.close = ati18800_close,
|
||||
.reset = NULL,
|
||||
{ .available = ati18800_wonder_available },
|
||||
.speed_changed = ati18800_speed_changed,
|
||||
.force_redraw = ati18800_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
#endif
|
||||
|
||||
const device_t ati18800_vga88_device =
|
||||
{
|
||||
"ATI-18800-1",
|
||||
"ati18800v",
|
||||
DEVICE_ISA, ATI18800_VGA88,
|
||||
ati18800_init,
|
||||
ati18800_close,
|
||||
NULL,
|
||||
{ ati18800_vga88_available },
|
||||
ati18800_speed_changed,
|
||||
ati18800_force_redraw,
|
||||
NULL
|
||||
.name = "ATI-18800-1",
|
||||
.internal_name = "ati18800v",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = ATI18800_VGA88,
|
||||
.init = ati18800_init,
|
||||
.close = ati18800_close,
|
||||
.reset = NULL,
|
||||
{ .available = ati18800_vga88_available },
|
||||
.speed_changed = ati18800_speed_changed,
|
||||
.force_redraw = ati18800_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ati18800_device =
|
||||
{
|
||||
"ATI-18800-5",
|
||||
"ati18800",
|
||||
DEVICE_ISA, ATI18800_EDGE16,
|
||||
ati18800_init,
|
||||
ati18800_close,
|
||||
NULL,
|
||||
{ ati18800_available },
|
||||
ati18800_speed_changed,
|
||||
ati18800_force_redraw,
|
||||
NULL
|
||||
.name = "ATI-18800-5",
|
||||
.internal_name = "ati18800",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = ATI18800_EDGE16,
|
||||
.init = ati18800_init,
|
||||
.close = ati18800_close,
|
||||
.reset = NULL,
|
||||
{ .available = ati18800_available },
|
||||
.speed_changed = ati18800_speed_changed,
|
||||
.force_redraw = ati18800_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -716,14 +716,11 @@ static const device_config_t ati28800_config[] = {
|
||||
{ "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"", "", -1
|
||||
}
|
||||
{ "", "", -1 }
|
||||
};
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_XL24)
|
||||
static const device_config_t ati28800_wonderxl_config[] =
|
||||
{
|
||||
static const device_config_t ati28800_wonderxl_config[] = {
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 512, "", { 0 },
|
||||
{
|
||||
@@ -733,87 +730,93 @@ static const device_config_t ati28800_wonderxl_config[] =
|
||||
{ "" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"", "", -1
|
||||
}
|
||||
{ "", "", -1 }
|
||||
};
|
||||
#endif
|
||||
// clang-format on
|
||||
|
||||
const device_t ati28800_device =
|
||||
{
|
||||
"ATI 28800-5 (ATI VGA Charger)",
|
||||
"ati28800",
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
ati28800_init, ati28800_close, NULL,
|
||||
{ ati28800_available },
|
||||
ati28800_speed_changed,
|
||||
ati28800_force_redraw,
|
||||
ati28800_config
|
||||
const device_t ati28800_device = {
|
||||
.name = "ATI 28800-5 (ATI VGA Charger)",
|
||||
.internal_name = "ati28800",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = ati28800_init,
|
||||
.close = ati28800_close,
|
||||
.reset = NULL,
|
||||
{ .available = ati28800_available },
|
||||
.speed_changed = ati28800_speed_changed,
|
||||
.force_redraw = ati28800_force_redraw,
|
||||
.config = ati28800_config
|
||||
};
|
||||
|
||||
const device_t ati28800k_device =
|
||||
{
|
||||
"ATI Korean VGA",
|
||||
"ati28800k",
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
ati28800k_init, ati28800_close, NULL,
|
||||
{ ati28800k_available },
|
||||
ati28800_speed_changed,
|
||||
ati28800_force_redraw,
|
||||
ati28800_config
|
||||
const device_t ati28800k_device = {
|
||||
.name = "ATI Korean VGA",
|
||||
.internal_name = "ati28800k",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = ati28800k_init,
|
||||
.close = ati28800_close,
|
||||
.reset = NULL,
|
||||
{ .available = ati28800k_available },
|
||||
.speed_changed = ati28800_speed_changed,
|
||||
.force_redraw = ati28800_force_redraw,
|
||||
.config = ati28800_config
|
||||
};
|
||||
|
||||
const device_t ati28800k_spc4620p_device =
|
||||
{
|
||||
"ATI Korean VGA On-Board SPC-4620P",
|
||||
"ati28800k_spc4620p",
|
||||
DEVICE_ISA,
|
||||
1,
|
||||
ati28800k_init, ati28800_close, NULL,
|
||||
{ NULL },
|
||||
ati28800_speed_changed,
|
||||
ati28800_force_redraw
|
||||
const device_t ati28800k_spc4620p_device = {
|
||||
.name = "ATI Korean VGA On-Board SPC-4620P",
|
||||
.internal_name = "ati28800k_spc4620p",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 1,
|
||||
.init = ati28800k_init,
|
||||
.close = ati28800_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = ati28800_speed_changed,
|
||||
.force_redraw = ati28800_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ati28800k_spc6033p_device =
|
||||
{
|
||||
"ATI Korean VGA On-Board SPC-6033P",
|
||||
"ati28800k_spc6033p",
|
||||
DEVICE_ISA,
|
||||
2,
|
||||
ati28800k_init, ati28800_close, NULL,
|
||||
{ NULL },
|
||||
ati28800_speed_changed,
|
||||
ati28800_force_redraw
|
||||
const device_t ati28800k_spc6033p_device = {
|
||||
.name = "ATI Korean VGA On-Board SPC-6033P",
|
||||
.internal_name = "ati28800k_spc6033p",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 2,
|
||||
.init = ati28800k_init,
|
||||
.close = ati28800_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = ati28800_speed_changed,
|
||||
.force_redraw = ati28800_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t compaq_ati28800_device =
|
||||
{
|
||||
"ATI 28800-5 (ATI VGA Wonder XL)",
|
||||
"compaq_ati28800",
|
||||
DEVICE_ISA,
|
||||
VGAWONDERXL,
|
||||
ati28800_init, ati28800_close, NULL,
|
||||
{ compaq_ati28800_available },
|
||||
ati28800_speed_changed,
|
||||
ati28800_force_redraw,
|
||||
ati28800_config
|
||||
const device_t compaq_ati28800_device = {
|
||||
.name = "ATI 28800-5 (ATI VGA Wonder XL)",
|
||||
.internal_name = "compaq_ati28800",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = VGAWONDERXL,
|
||||
.init = ati28800_init,
|
||||
.close = ati28800_close,
|
||||
.reset = NULL,
|
||||
{ .available = compaq_ati28800_available },
|
||||
.speed_changed = ati28800_speed_changed,
|
||||
.force_redraw = ati28800_force_redraw,
|
||||
.config = ati28800_config
|
||||
};
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_XL24)
|
||||
const device_t ati28800_wonderxl24_device =
|
||||
{
|
||||
"ATI-28800 (VGA Wonder XL24)",
|
||||
"ati28800w",
|
||||
DEVICE_ISA,
|
||||
VGAWONDERXL24,
|
||||
ati28800_init, ati28800_close, NULL,
|
||||
{ ati28800_wonderxl24_available },
|
||||
ati28800_speed_changed,
|
||||
ati28800_force_redraw,
|
||||
ati28800_wonderxl_config
|
||||
const device_t ati28800_wonderxl24_device = {
|
||||
.name = "ATI-28800 (VGA Wonder XL24)",
|
||||
.internal_name = "ati28800w",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = VGAWONDERXL24,
|
||||
.init = ati28800_init,
|
||||
.close = ati28800_close,
|
||||
.reset = NULL,
|
||||
{ .available = ati28800_wonderxl24_available },
|
||||
.speed_changed = ati28800_speed_changed,
|
||||
.force_redraw = ati28800_force_redraw,
|
||||
.config = ati28800_wonderxl_config
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -286,12 +286,16 @@ ati68860_ramdac_close(void *priv)
|
||||
free(ramdac);
|
||||
}
|
||||
|
||||
|
||||
const device_t ati68860_ramdac_device =
|
||||
{
|
||||
"ATI-68860 RAMDAC",
|
||||
"ati68860_ramdac",
|
||||
0, 0,
|
||||
ati68860_ramdac_init, ati68860_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t ati68860_ramdac_device = {
|
||||
.name = "ATI-68860 RAMDAC",
|
||||
.internal_name = "ati68860_ramdac",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = ati68860_ramdac_init,
|
||||
.close = ati68860_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -174,30 +174,44 @@ att49x_ramdac_close(void *priv)
|
||||
free(ramdac);
|
||||
}
|
||||
|
||||
|
||||
const device_t att490_ramdac_device =
|
||||
{
|
||||
"AT&T 20c490 RAMDAC",
|
||||
"att490_ramdac",
|
||||
0, ATT_490,
|
||||
att49x_ramdac_init, att49x_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t att490_ramdac_device = {
|
||||
.name = "AT&T 20c490 RAMDAC",
|
||||
.internal_name = "att490_ramdac",
|
||||
.flags = 0,
|
||||
.local = ATT_490,
|
||||
.init = att49x_ramdac_init,
|
||||
.close = att49x_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t att491_ramdac_device =
|
||||
{
|
||||
"AT&T 20c491 RAMDAC",
|
||||
"att491_ramdac",
|
||||
0, ATT_491,
|
||||
att49x_ramdac_init, att49x_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t att491_ramdac_device = {
|
||||
.name = "AT&T 20c491 RAMDAC",
|
||||
.internal_name = "att491_ramdac",
|
||||
.flags = 0,
|
||||
.local = ATT_491,
|
||||
.init = att49x_ramdac_init,
|
||||
.close = att49x_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t att492_ramdac_device =
|
||||
{
|
||||
"AT&T 20c492 RAMDAC",
|
||||
"att492_ramdac",
|
||||
0, ATT_492,
|
||||
att49x_ramdac_init, att49x_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t att492_ramdac_device = {
|
||||
.name = "AT&T 20c492 RAMDAC",
|
||||
.internal_name = "att492_ramdac",
|
||||
.flags = 0,
|
||||
.local = ATT_492,
|
||||
.init = att49x_ramdac_init,
|
||||
.close = att49x_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -176,12 +176,16 @@ att498_ramdac_close(void *priv)
|
||||
free(ramdac);
|
||||
}
|
||||
|
||||
|
||||
const device_t att498_ramdac_device =
|
||||
{
|
||||
"AT&T 22c498 RAMDAC",
|
||||
"att498_ramdac",
|
||||
0, 0,
|
||||
att498_ramdac_init, att498_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t att498_ramdac_device = {
|
||||
.name = "AT&T 22c498 RAMDAC",
|
||||
.internal_name = "att498_ramdac",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = att498_ramdac_init,
|
||||
.close = att498_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -95,11 +95,16 @@ av9194_init(const device_t *info)
|
||||
}
|
||||
|
||||
|
||||
const device_t av9194_device =
|
||||
{
|
||||
"AV9194 Clock Generator",
|
||||
"av9194",
|
||||
0, 0,
|
||||
av9194_init, NULL,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t av9194_device = {
|
||||
.name = "AV9194 Clock Generator",
|
||||
.internal_name = "av9194",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = av9194_init,
|
||||
.close = NULL,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -499,48 +499,72 @@ bt48x_ramdac_close(void *priv)
|
||||
free(ramdac);
|
||||
}
|
||||
|
||||
|
||||
const device_t bt484_ramdac_device =
|
||||
{
|
||||
"Brooktree Bt484 RAMDAC",
|
||||
"bt484_ramdac",
|
||||
0, BT484,
|
||||
bt48x_ramdac_init, bt48x_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t bt484_ramdac_device = {
|
||||
.name = "Brooktree Bt484 RAMDAC",
|
||||
.internal_name = "bt484_ramdac",
|
||||
.flags = 0,
|
||||
.local = BT484,
|
||||
.init = bt48x_ramdac_init,
|
||||
.close = bt48x_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t att20c504_ramdac_device =
|
||||
{
|
||||
"AT&T 20c504 RAMDAC",
|
||||
"att20c504_ramdac",
|
||||
0, ATT20C504,
|
||||
bt48x_ramdac_init, bt48x_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t att20c504_ramdac_device = {
|
||||
.name = "AT&T 20c504 RAMDAC",
|
||||
.internal_name = "att20c504_ramdac",
|
||||
.flags = 0,
|
||||
.local = ATT20C504,
|
||||
.init = bt48x_ramdac_init,
|
||||
.close = bt48x_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t bt485_ramdac_device =
|
||||
{
|
||||
"Brooktree Bt485 RAMDAC",
|
||||
"bt485_ramdac",
|
||||
0, BT485,
|
||||
bt48x_ramdac_init, bt48x_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t bt485_ramdac_device = {
|
||||
.name = "Brooktree Bt485 RAMDAC",
|
||||
.internal_name = "bt485_ramdac",
|
||||
.flags = 0,
|
||||
.local = BT485,
|
||||
.init = bt48x_ramdac_init,
|
||||
.close = bt48x_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t att20c505_ramdac_device =
|
||||
{
|
||||
"AT&T 20c505 RAMDAC",
|
||||
"att20c505_ramdac",
|
||||
0, ATT20C505,
|
||||
bt48x_ramdac_init, bt48x_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t att20c505_ramdac_device = {
|
||||
.name = "AT&T 20c505 RAMDAC",
|
||||
.internal_name = "att20c505_ramdac",
|
||||
.flags = 0,
|
||||
.local = ATT20C505,
|
||||
.init = bt48x_ramdac_init,
|
||||
.close = bt48x_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t bt485a_ramdac_device =
|
||||
{
|
||||
"Brooktree Bt485A RAMDAC",
|
||||
"bt485a_ramdac",
|
||||
0, BT485A,
|
||||
bt48x_ramdac_init, bt48x_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t bt485a_ramdac_device = {
|
||||
.name = "Brooktree Bt485A RAMDAC",
|
||||
.internal_name = "bt485a_ramdac",
|
||||
.flags = 0,
|
||||
.local = BT485A,
|
||||
.init = bt48x_ramdac_init,
|
||||
.close = bt48x_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -614,15 +614,15 @@ const device_config_t cga_config[] = {
|
||||
// clang-format on
|
||||
|
||||
const device_t cga_device = {
|
||||
"CGA",
|
||||
"cga",
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
cga_standalone_init,
|
||||
cga_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
cga_speed_changed,
|
||||
NULL,
|
||||
cga_config
|
||||
.name = "CGA",
|
||||
.internal_name = "cga",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = cga_standalone_init,
|
||||
.close = cga_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = cga_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = cga_config
|
||||
};
|
||||
|
||||
@@ -4500,450 +4500,426 @@ static const device_config_t gd5480_config[] = {
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
const device_t gd5401_isa_device =
|
||||
{
|
||||
"Cirrus Logic GD5401 (ISA) (ACUMOS AVGA1)",
|
||||
"cl_gd5401_isa",
|
||||
DEVICE_ISA,
|
||||
CIRRUS_ID_CLGD5401,
|
||||
gd54xx_init, gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5401_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
NULL,
|
||||
const device_t gd5401_isa_device = {
|
||||
.name = "Cirrus Logic GD5401 (ISA) (ACUMOS AVGA1)",
|
||||
.internal_name = "cl_gd5401_isa",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = CIRRUS_ID_CLGD5401,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5401_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = NULL,
|
||||
};
|
||||
|
||||
const device_t gd5402_isa_device =
|
||||
{
|
||||
"Cirrus Logic GD5402 (ISA) (ACUMOS AVGA2)",
|
||||
"cl_gd5402_isa",
|
||||
DEVICE_ISA,
|
||||
CIRRUS_ID_CLGD5402,
|
||||
gd54xx_init, gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5402_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
NULL,
|
||||
const device_t gd5402_isa_device = {
|
||||
.name = "Cirrus Logic GD5402 (ISA) (ACUMOS AVGA2)",
|
||||
.internal_name = "cl_gd5402_isa",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = CIRRUS_ID_CLGD5402,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5402_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = NULL,
|
||||
};
|
||||
|
||||
const device_t gd5402_onboard_device =
|
||||
{
|
||||
"Cirrus Logic GD5402 (ISA) (ACUMOS AVGA2) (On-Board)",
|
||||
"cl_gd5402_onboard",
|
||||
DEVICE_AT | DEVICE_ISA,
|
||||
CIRRUS_ID_CLGD5402 | 0x200,
|
||||
gd54xx_init, gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ NULL },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
NULL,
|
||||
const device_t gd5402_onboard_device = {
|
||||
.name = "Cirrus Logic GD5402 (ISA) (ACUMOS AVGA2) (On-Board)",
|
||||
.internal_name = "cl_gd5402_onboard",
|
||||
.flags = DEVICE_AT | DEVICE_ISA,
|
||||
.local = CIRRUS_ID_CLGD5402 | 0x200,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = NULL,
|
||||
};
|
||||
|
||||
const device_t gd5420_isa_device =
|
||||
{
|
||||
"Cirrus Logic GD5420 (ISA)",
|
||||
"cl_gd5420_isa",
|
||||
DEVICE_AT | DEVICE_ISA,
|
||||
CIRRUS_ID_CLGD5420,
|
||||
gd54xx_init, gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5420_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd542x_config,
|
||||
const device_t gd5420_isa_device = {
|
||||
.name = "Cirrus Logic GD5420 (ISA)",
|
||||
.internal_name = "cl_gd5420_isa",
|
||||
.flags = DEVICE_AT | DEVICE_ISA,
|
||||
.local = CIRRUS_ID_CLGD5420,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5420_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd542x_config,
|
||||
};
|
||||
|
||||
const device_t gd5422_isa_device = {
|
||||
"Cirrus Logic GD5422 (ISA)",
|
||||
"cl_gd5422_isa",
|
||||
DEVICE_AT | DEVICE_ISA,
|
||||
CIRRUS_ID_CLGD5422,
|
||||
gd54xx_init, gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5422_available }, /* Common BIOS between 5422 and 5424 */
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd542x_config,
|
||||
.name = "Cirrus Logic GD5422 (ISA)",
|
||||
.internal_name = "cl_gd5422_isa",
|
||||
.flags = DEVICE_AT | DEVICE_ISA,
|
||||
.local = CIRRUS_ID_CLGD5422,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5422_available }, /* Common BIOS between 5422 and 5424 */
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd542x_config,
|
||||
};
|
||||
|
||||
const device_t gd5424_vlb_device = {
|
||||
"Cirrus Logic GD5424 (VLB)",
|
||||
"cl_gd5424_vlb",
|
||||
DEVICE_VLB,
|
||||
CIRRUS_ID_CLGD5424,
|
||||
gd54xx_init, gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5422_available }, /* Common BIOS between 5422 and 5424 */
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd542x_config,
|
||||
.name = "Cirrus Logic GD5424 (VLB)",
|
||||
.internal_name = "cl_gd5424_vlb",
|
||||
.flags = DEVICE_VLB,
|
||||
.local = CIRRUS_ID_CLGD5424,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5422_available }, /* Common BIOS between 5422 and 5424 */
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd542x_config,
|
||||
};
|
||||
|
||||
const device_t gd5426_isa_device =
|
||||
{
|
||||
"Cirrus Logic GD5426 (ISA)",
|
||||
"cl_gd5426_isa",
|
||||
DEVICE_AT | DEVICE_ISA,
|
||||
CIRRUS_ID_CLGD5426,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5428_isa_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd5426_config
|
||||
};
|
||||
|
||||
|
||||
/*According to a Diamond bios file listing and vgamuseum*/
|
||||
const device_t gd5426_diamond_speedstar_pro_a1_isa_device =
|
||||
{
|
||||
"Cirrus Logic GD5426 (ISA) (Diamond SpeedStar Pro Rev. A1)",
|
||||
"cl_gd5426_diamond_a1_isa",
|
||||
DEVICE_AT | DEVICE_ISA,
|
||||
CIRRUS_ID_CLGD5426 | 0x100,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5426_diamond_a1_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd5426_config
|
||||
};
|
||||
|
||||
const device_t gd5426_vlb_device =
|
||||
{
|
||||
"Cirrus Logic GD5426 (VLB)",
|
||||
"cl_gd5426_vlb",
|
||||
DEVICE_VLB,
|
||||
CIRRUS_ID_CLGD5426,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5428_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd5426_config
|
||||
};
|
||||
|
||||
|
||||
const device_t gd5426_onboard_device =
|
||||
{
|
||||
"Cirrus Logic GD5426 (VLB) (On-Board)",
|
||||
"cl_gd5426_onboard",
|
||||
DEVICE_VLB,
|
||||
CIRRUS_ID_CLGD5426 | 0x200,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ NULL },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
NULL
|
||||
};
|
||||
|
||||
const device_t gd5428_isa_device =
|
||||
{
|
||||
"Cirrus Logic GD5428 (ISA)",
|
||||
"cl_gd5428_isa",
|
||||
DEVICE_AT | DEVICE_ISA,
|
||||
CIRRUS_ID_CLGD5428,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5428_isa_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd5426_config
|
||||
};
|
||||
|
||||
const device_t gd5428_vlb_device =
|
||||
{
|
||||
"Cirrus Logic GD5428 (VLB)",
|
||||
"cl_gd5428_vlb",
|
||||
DEVICE_VLB,
|
||||
CIRRUS_ID_CLGD5428,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5428_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd5426_config
|
||||
const device_t gd5426_isa_device = {
|
||||
.name = "Cirrus Logic GD5426 (ISA)",
|
||||
.internal_name = "cl_gd5426_isa",
|
||||
.flags = DEVICE_AT | DEVICE_ISA,
|
||||
.local = CIRRUS_ID_CLGD5426,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5428_isa_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5426_config
|
||||
};
|
||||
|
||||
/*According to a Diamond bios file listing and vgamuseum*/
|
||||
const device_t gd5428_diamond_speedstar_pro_b1_vlb_device =
|
||||
{
|
||||
"Cirrus Logic GD5428 (VLB) (Diamond SpeedStar Pro Rev. B1)",
|
||||
"cl_gd5428_diamond_b1_vlb",
|
||||
DEVICE_VLB,
|
||||
CIRRUS_ID_CLGD5428 | 0x100,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5428_diamond_b1_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd5426_config
|
||||
const device_t gd5426_diamond_speedstar_pro_a1_isa_device = {
|
||||
.name = "Cirrus Logic GD5426 (ISA) (Diamond SpeedStar Pro Rev. A1)",
|
||||
.internal_name = "cl_gd5426_diamond_a1_isa",
|
||||
.flags = DEVICE_AT | DEVICE_ISA,
|
||||
.local = CIRRUS_ID_CLGD5426 | 0x100,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5426_diamond_a1_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5426_config
|
||||
};
|
||||
|
||||
const device_t gd5428_mca_device =
|
||||
{
|
||||
"Cirrus Logic GD5428 (MCA) (IBM SVGA Adapter/A)",
|
||||
"ibm1mbsvga",
|
||||
DEVICE_MCA,
|
||||
CIRRUS_ID_CLGD5428,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5428_mca_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
NULL
|
||||
const device_t gd5426_vlb_device = {
|
||||
.name = "Cirrus Logic GD5426 (VLB)",
|
||||
.internal_name = "cl_gd5426_vlb",
|
||||
.flags = DEVICE_VLB,
|
||||
.local = CIRRUS_ID_CLGD5426,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5428_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5426_config
|
||||
};
|
||||
|
||||
const device_t gd5428_onboard_device =
|
||||
{
|
||||
"Cirrus Logic GD5428 (ISA) (On-Board)",
|
||||
"cl_gd5428_onboard",
|
||||
DEVICE_AT | DEVICE_ISA,
|
||||
CIRRUS_ID_CLGD5428,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5428_isa_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd5428_onboard_config
|
||||
const device_t gd5426_onboard_device = {
|
||||
.name = "Cirrus Logic GD5426 (VLB) (On-Board)",
|
||||
.internal_name = "cl_gd5426_onboard",
|
||||
.flags = DEVICE_VLB,
|
||||
.local = CIRRUS_ID_CLGD5426 | 0x200,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t gd5429_isa_device =
|
||||
{
|
||||
"Cirrus Logic GD5429 (ISA)",
|
||||
"cl_gd5429_isa",
|
||||
DEVICE_AT | DEVICE_ISA,
|
||||
CIRRUS_ID_CLGD5429,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5429_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd5429_config
|
||||
const device_t gd5428_isa_device = {
|
||||
.name = "Cirrus Logic GD5428 (ISA)",
|
||||
.internal_name = "cl_gd5428_isa",
|
||||
.flags = DEVICE_AT | DEVICE_ISA,
|
||||
.local = CIRRUS_ID_CLGD5428,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5428_isa_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5426_config
|
||||
};
|
||||
|
||||
const device_t gd5429_vlb_device =
|
||||
{
|
||||
"Cirrus Logic GD5429 (VLB)",
|
||||
"cl_gd5429_vlb",
|
||||
DEVICE_VLB,
|
||||
CIRRUS_ID_CLGD5429,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5429_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd5429_config
|
||||
const device_t gd5428_vlb_device = {
|
||||
.name = "Cirrus Logic GD5428 (VLB)",
|
||||
.internal_name = "cl_gd5428_vlb",
|
||||
.flags = DEVICE_VLB,
|
||||
.local = CIRRUS_ID_CLGD5428,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5428_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5426_config
|
||||
};
|
||||
|
||||
/*According to a Diamond bios file listing and vgamuseum*/
|
||||
const device_t gd5430_diamond_speedstar_pro_se_a8_vlb_device =
|
||||
{
|
||||
"Cirrus Logic GD5430 (VLB) (Diamond SpeedStar Pro SE Rev. A8)",
|
||||
"cl_gd5430_vlb",
|
||||
DEVICE_VLB,
|
||||
CIRRUS_ID_CLGD5430,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5430_diamond_a8_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd5429_config
|
||||
const device_t gd5428_diamond_speedstar_pro_b1_vlb_device = {
|
||||
.name = "Cirrus Logic GD5428 (VLB) (Diamond SpeedStar Pro Rev. B1)",
|
||||
.internal_name = "cl_gd5428_diamond_b1_vlb",
|
||||
.flags = DEVICE_VLB,
|
||||
.local = CIRRUS_ID_CLGD5428 | 0x100,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5428_diamond_b1_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5426_config
|
||||
};
|
||||
|
||||
const device_t gd5430_pci_device =
|
||||
{
|
||||
"Cirrus Logic GD5430 (PCI)",
|
||||
"cl_gd5430_pci",
|
||||
DEVICE_PCI,
|
||||
CIRRUS_ID_CLGD5430,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5430_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd5429_config
|
||||
const device_t gd5428_mca_device = {
|
||||
.name = "Cirrus Logic GD5428 (MCA) (IBM SVGA Adapter/A)",
|
||||
.internal_name = "ibm1mbsvga",
|
||||
.flags = DEVICE_MCA,
|
||||
.local = CIRRUS_ID_CLGD5428,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5428_mca_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t gd5434_isa_device =
|
||||
{
|
||||
"Cirrus Logic GD5434 (ISA)",
|
||||
"cl_gd5434_isa",
|
||||
DEVICE_AT | DEVICE_ISA,
|
||||
CIRRUS_ID_CLGD5434,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5434_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd5434_config
|
||||
const device_t gd5428_onboard_device = {
|
||||
.name = "Cirrus Logic GD5428 (ISA) (On-Board)",
|
||||
.internal_name = "cl_gd5428_onboard",
|
||||
.flags = DEVICE_AT | DEVICE_ISA,
|
||||
.local = CIRRUS_ID_CLGD5428,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5428_isa_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5428_onboard_config
|
||||
};
|
||||
|
||||
const device_t gd5429_isa_device = {
|
||||
.name = "Cirrus Logic GD5429 (ISA)",
|
||||
.internal_name = "cl_gd5429_isa",
|
||||
.flags = DEVICE_AT | DEVICE_ISA,
|
||||
.local = CIRRUS_ID_CLGD5429,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5429_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5429_config
|
||||
};
|
||||
|
||||
const device_t gd5429_vlb_device = {
|
||||
.name = "Cirrus Logic GD5429 (VLB)",
|
||||
.internal_name = "cl_gd5429_vlb",
|
||||
.flags = DEVICE_VLB,
|
||||
.local = CIRRUS_ID_CLGD5429,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5429_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5429_config
|
||||
};
|
||||
|
||||
/*According to a Diamond bios file listing and vgamuseum*/
|
||||
const device_t gd5434_diamond_speedstar_64_a3_isa_device =
|
||||
{
|
||||
"Cirrus Logic GD5434 (ISA) (Diamond SpeedStar 64 Rev. A3)",
|
||||
"cl_gd5434_diamond_a3_isa",
|
||||
DEVICE_AT | DEVICE_ISA,
|
||||
CIRRUS_ID_CLGD5434 | 0x100,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5434_diamond_a3_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd5429_config
|
||||
const device_t gd5430_diamond_speedstar_pro_se_a8_vlb_device = {
|
||||
.name = "Cirrus Logic GD5430 (VLB) (Diamond SpeedStar Pro SE Rev. A8)",
|
||||
.internal_name = "cl_gd5430_vlb",
|
||||
.flags = DEVICE_VLB,
|
||||
.local = CIRRUS_ID_CLGD5430,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5430_diamond_a8_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5429_config
|
||||
};
|
||||
|
||||
const device_t gd5434_onboard_pci_device =
|
||||
{
|
||||
"Cirrus Logic GD5434-4 (PCI) (On-Board)",
|
||||
"cl_gd5434_onboard_pci",
|
||||
DEVICE_PCI,
|
||||
CIRRUS_ID_CLGD5434 | 0x200,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ NULL },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd5434_onboard_config
|
||||
const device_t gd5430_pci_device = {
|
||||
.name = "Cirrus Logic GD5430 (PCI)",
|
||||
.internal_name = "cl_gd5430_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = CIRRUS_ID_CLGD5430,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5430_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5429_config
|
||||
};
|
||||
|
||||
const device_t gd5434_vlb_device =
|
||||
{
|
||||
"Cirrus Logic GD5434 (VLB)",
|
||||
"cl_gd5434_vlb",
|
||||
DEVICE_VLB,
|
||||
CIRRUS_ID_CLGD5434,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5434_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd5434_config
|
||||
const device_t gd5434_isa_device = {
|
||||
.name = "Cirrus Logic GD5434 (ISA)",
|
||||
.internal_name = "cl_gd5434_isa",
|
||||
.flags = DEVICE_AT | DEVICE_ISA,
|
||||
.local = CIRRUS_ID_CLGD5434,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5434_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5434_config
|
||||
};
|
||||
|
||||
const device_t gd5434_pci_device =
|
||||
{
|
||||
"Cirrus Logic GD5434 (PCI)",
|
||||
"cl_gd5434_pci",
|
||||
DEVICE_PCI,
|
||||
CIRRUS_ID_CLGD5434,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5434_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd5434_config
|
||||
/*According to a Diamond bios file listing and vgamuseum*/
|
||||
const device_t gd5434_diamond_speedstar_64_a3_isa_device = {
|
||||
.name = "Cirrus Logic GD5434 (ISA) (Diamond SpeedStar 64 Rev. A3)",
|
||||
.internal_name = "cl_gd5434_diamond_a3_isa",
|
||||
.flags = DEVICE_AT | DEVICE_ISA,
|
||||
.local = CIRRUS_ID_CLGD5434 | 0x100,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5434_diamond_a3_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5429_config
|
||||
};
|
||||
|
||||
const device_t gd5436_pci_device =
|
||||
{
|
||||
"Cirrus Logic GD5436 (PCI)",
|
||||
"cl_gd5436_pci",
|
||||
DEVICE_PCI,
|
||||
CIRRUS_ID_CLGD5436,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5436_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd5434_config
|
||||
const device_t gd5434_onboard_pci_device = {
|
||||
.name = "Cirrus Logic GD5434-4 (PCI) (On-Board)",
|
||||
.internal_name = "cl_gd5434_onboard_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = CIRRUS_ID_CLGD5434 | 0x200,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5434_onboard_config
|
||||
};
|
||||
|
||||
const device_t gd5440_onboard_pci_device =
|
||||
{
|
||||
"Cirrus Logic GD5440 (PCI) (On-Board)",
|
||||
"cl_gd5440_onboard_pci",
|
||||
DEVICE_PCI,
|
||||
CIRRUS_ID_CLGD5440 | 0x600,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ NULL },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd5440_onboard_config
|
||||
const device_t gd5434_vlb_device = {
|
||||
.name = "Cirrus Logic GD5434 (VLB)",
|
||||
.internal_name = "cl_gd5434_vlb",
|
||||
.flags = DEVICE_VLB,
|
||||
.local = CIRRUS_ID_CLGD5434,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5434_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5434_config
|
||||
};
|
||||
|
||||
const device_t gd5440_pci_device =
|
||||
{
|
||||
"Cirrus Logic GD5440 (PCI)",
|
||||
"cl_gd5440_pci",
|
||||
DEVICE_PCI,
|
||||
CIRRUS_ID_CLGD5440 | 0x400,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5440_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd5429_config
|
||||
const device_t gd5434_pci_device = {
|
||||
.name = "Cirrus Logic GD5434 (PCI)",
|
||||
.internal_name = "cl_gd5434_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = CIRRUS_ID_CLGD5434,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5434_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5434_config
|
||||
};
|
||||
|
||||
const device_t gd5446_pci_device =
|
||||
{
|
||||
"Cirrus Logic GD5446 (PCI)",
|
||||
"cl_gd5446_pci",
|
||||
DEVICE_PCI,
|
||||
CIRRUS_ID_CLGD5446,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5446_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd5434_config
|
||||
const device_t gd5436_pci_device = {
|
||||
.name = "Cirrus Logic GD5436 (PCI)",
|
||||
.internal_name = "cl_gd5436_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = CIRRUS_ID_CLGD5436,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5436_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5434_config
|
||||
};
|
||||
|
||||
const device_t gd5446_stb_pci_device =
|
||||
{
|
||||
"Cirrus Logic GD5446 (PCI) (STB Nitro 64V)",
|
||||
"cl_gd5446_stb_pci",
|
||||
DEVICE_PCI,
|
||||
CIRRUS_ID_CLGD5446 | 0x100,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5446_stb_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd5434_config
|
||||
const device_t gd5440_onboard_pci_device = {
|
||||
.name = "Cirrus Logic GD5440 (PCI) (On-Board)",
|
||||
.internal_name = "cl_gd5440_onboard_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = CIRRUS_ID_CLGD5440 | 0x600,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = NULL },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5440_onboard_config
|
||||
};
|
||||
|
||||
const device_t gd5480_pci_device =
|
||||
{
|
||||
"Cirrus Logic GD5480 (PCI)",
|
||||
"cl_gd5480_pci",
|
||||
DEVICE_PCI,
|
||||
CIRRUS_ID_CLGD5480,
|
||||
gd54xx_init,
|
||||
gd54xx_close,
|
||||
gd54xx_reset,
|
||||
{ gd5480_available },
|
||||
gd54xx_speed_changed,
|
||||
gd54xx_force_redraw,
|
||||
gd5480_config
|
||||
const device_t gd5440_pci_device = {
|
||||
.name = "Cirrus Logic GD5440 (PCI)",
|
||||
.internal_name = "cl_gd5440_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = CIRRUS_ID_CLGD5440 | 0x400,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5440_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5429_config
|
||||
};
|
||||
|
||||
const device_t gd5446_pci_device = {
|
||||
.name = "Cirrus Logic GD5446 (PCI)",
|
||||
.internal_name = "cl_gd5446_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = CIRRUS_ID_CLGD5446,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5446_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5434_config
|
||||
};
|
||||
|
||||
const device_t gd5446_stb_pci_device = {
|
||||
.name = "Cirrus Logic GD5446 (PCI) (STB Nitro 64V)",
|
||||
.internal_name = "cl_gd5446_stb_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = CIRRUS_ID_CLGD5446 | 0x100,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5446_stb_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5434_config
|
||||
};
|
||||
|
||||
const device_t gd5480_pci_device = {
|
||||
.name = "Cirrus Logic GD5480 (PCI)",
|
||||
.internal_name = "cl_gd5480_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = CIRRUS_ID_CLGD5480,
|
||||
.init = gd54xx_init,
|
||||
.close = gd54xx_close,
|
||||
.reset = gd54xx_reset,
|
||||
{ .available = gd5480_available },
|
||||
.speed_changed = gd54xx_speed_changed,
|
||||
.force_redraw = gd54xx_force_redraw,
|
||||
.config = gd5480_config
|
||||
};
|
||||
|
||||
@@ -453,14 +453,15 @@ static const device_config_t colorplus_config[] = {
|
||||
|
||||
const device_t colorplus_device =
|
||||
{
|
||||
"Colorplus",
|
||||
"plantronics",
|
||||
DEVICE_ISA, 0,
|
||||
colorplus_standalone_init,
|
||||
colorplus_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
colorplus_speed_changed,
|
||||
NULL,
|
||||
colorplus_config
|
||||
.name = "Colorplus",
|
||||
.internal_name = "plantronics",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = colorplus_standalone_init,
|
||||
.close = colorplus_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = colorplus_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = colorplus_config
|
||||
};
|
||||
|
||||
@@ -476,30 +476,30 @@ compaq_cga_speed_changed(void *p)
|
||||
|
||||
extern const device_config_t cga_config[];
|
||||
|
||||
const device_t compaq_cga_device =
|
||||
{
|
||||
"Compaq CGA",
|
||||
"compaq_cga",
|
||||
DEVICE_ISA, 0,
|
||||
compaq_cga_init,
|
||||
compaq_cga_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
compaq_cga_speed_changed,
|
||||
NULL,
|
||||
cga_config
|
||||
const device_t compaq_cga_device = {
|
||||
.name = "Compaq CGA",
|
||||
.internal_name = "compaq_cga",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = compaq_cga_init,
|
||||
.close = compaq_cga_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = compaq_cga_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = cga_config
|
||||
};
|
||||
|
||||
const device_t compaq_cga_2_device =
|
||||
{
|
||||
"Compaq CGA 2",
|
||||
"compaq_cga_2",
|
||||
DEVICE_ISA, 1,
|
||||
compaq_cga_init,
|
||||
compaq_cga_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
compaq_cga_speed_changed,
|
||||
NULL,
|
||||
cga_config
|
||||
const device_t compaq_cga_2_device = {
|
||||
.name = "Compaq CGA 2",
|
||||
.internal_name = "compaq_cga_2",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 1,
|
||||
.init = compaq_cga_init,
|
||||
.close = compaq_cga_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = compaq_cga_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = cga_config
|
||||
};
|
||||
|
||||
@@ -1233,81 +1233,86 @@ static const device_config_t ega_config[] = {
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
const device_t ega_device =
|
||||
{
|
||||
"EGA",
|
||||
"ega",
|
||||
DEVICE_ISA,
|
||||
EGA_IBM,
|
||||
ega_standalone_init, ega_close, NULL,
|
||||
{ ega_standalone_available },
|
||||
ega_speed_changed,
|
||||
NULL,
|
||||
ega_config
|
||||
const device_t ega_device = {
|
||||
.name = "EGA",
|
||||
.internal_name = "ega",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = EGA_IBM,
|
||||
.init = ega_standalone_init,
|
||||
.close = ega_close,
|
||||
.reset = NULL,
|
||||
{ .available = ega_standalone_available },
|
||||
.speed_changed = ega_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = ega_config
|
||||
};
|
||||
|
||||
const device_t cpqega_device =
|
||||
{
|
||||
"Compaq EGA",
|
||||
"compaq_ega",
|
||||
DEVICE_ISA,
|
||||
EGA_COMPAQ,
|
||||
ega_standalone_init, ega_close, NULL,
|
||||
{ cpqega_standalone_available },
|
||||
ega_speed_changed,
|
||||
NULL,
|
||||
ega_config
|
||||
const device_t cpqega_device = {
|
||||
.name = "Compaq EGA",
|
||||
.internal_name = "compaq_ega",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = EGA_COMPAQ,
|
||||
.init = ega_standalone_init,
|
||||
.close = ega_close,
|
||||
.reset = NULL,
|
||||
{ .available = cpqega_standalone_available },
|
||||
.speed_changed = ega_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = ega_config
|
||||
};
|
||||
|
||||
const device_t sega_device =
|
||||
{
|
||||
"SuperEGA",
|
||||
"superega",
|
||||
DEVICE_ISA,
|
||||
EGA_SUPEREGA,
|
||||
ega_standalone_init, ega_close, NULL,
|
||||
{ sega_standalone_available },
|
||||
ega_speed_changed,
|
||||
NULL,
|
||||
ega_config
|
||||
const device_t sega_device = {
|
||||
.name = "SuperEGA",
|
||||
.internal_name = "superega",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = EGA_SUPEREGA,
|
||||
.init = ega_standalone_init,
|
||||
.close = ega_close,
|
||||
.reset = NULL,
|
||||
{ .available = sega_standalone_available },
|
||||
.speed_changed = ega_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = ega_config
|
||||
};
|
||||
|
||||
const device_t atiega_device =
|
||||
{
|
||||
"ATI EGA Wonder 800+",
|
||||
"egawonder800",
|
||||
DEVICE_ISA,
|
||||
EGA_ATI,
|
||||
ega_standalone_init, ega_close, NULL,
|
||||
{ atiega_standalone_available },
|
||||
ega_speed_changed,
|
||||
NULL,
|
||||
ega_config
|
||||
const device_t atiega_device = {
|
||||
.name = "ATI EGA Wonder 800+",
|
||||
.internal_name = "egawonder800",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = EGA_ATI,
|
||||
.init = ega_standalone_init,
|
||||
.close = ega_close,
|
||||
.reset = NULL,
|
||||
{ .available = atiega_standalone_available },
|
||||
.speed_changed = ega_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = ega_config
|
||||
};
|
||||
|
||||
const device_t iskra_ega_device =
|
||||
{
|
||||
"Iskra EGA (Cyrillic ROM)",
|
||||
"iskra_ega",
|
||||
DEVICE_ISA,
|
||||
EGA_ISKRA,
|
||||
ega_standalone_init, ega_close, NULL,
|
||||
{ iskra_ega_standalone_available },
|
||||
ega_speed_changed,
|
||||
NULL,
|
||||
ega_config
|
||||
const device_t iskra_ega_device = {
|
||||
.name = "Iskra EGA (Cyrillic ROM)",
|
||||
.internal_name = "iskra_ega",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = EGA_ISKRA,
|
||||
.init = ega_standalone_init,
|
||||
.close = ega_close,
|
||||
.reset = NULL,
|
||||
{ .available = iskra_ega_standalone_available },
|
||||
.speed_changed = ega_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = ega_config
|
||||
};
|
||||
|
||||
const device_t et2000_device =
|
||||
{
|
||||
"Tseng Labs ET2000",
|
||||
"et2000",
|
||||
DEVICE_ISA,
|
||||
EGA_TSENG,
|
||||
ega_standalone_init, ega_close, NULL,
|
||||
{ et2000_standalone_available },
|
||||
ega_speed_changed,
|
||||
NULL,
|
||||
ega_config
|
||||
const device_t et2000_device = {
|
||||
.name = "Tseng Labs ET2000",
|
||||
.internal_name = "et2000",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = EGA_TSENG,
|
||||
.init = ega_standalone_init,
|
||||
.close = ega_close,
|
||||
.reset = NULL,
|
||||
{ .available = et2000_standalone_available },
|
||||
.speed_changed = ega_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = ega_config
|
||||
};
|
||||
|
||||
@@ -820,61 +820,71 @@ static const device_config_t et4000_config[] = {
|
||||
};
|
||||
|
||||
const device_t et4000_isa_device = {
|
||||
"Tseng Labs ET4000AX (ISA)",
|
||||
"et4000ax",
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
et4000_init, et4000_close, NULL,
|
||||
{ et4000_available },
|
||||
et4000_speed_changed,
|
||||
et4000_force_redraw,
|
||||
et4000_config
|
||||
.name = "Tseng Labs ET4000AX (ISA)",
|
||||
.internal_name = "et4000ax",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = et4000_init,
|
||||
.close = et4000_close,
|
||||
.reset = NULL,
|
||||
{ .available = et4000_available },
|
||||
.speed_changed = et4000_speed_changed,
|
||||
.force_redraw = et4000_force_redraw,
|
||||
.config = et4000_config
|
||||
};
|
||||
|
||||
const device_t et4000_mca_device = {
|
||||
"Tseng Labs ET4000AX (MCA)",
|
||||
"et4000mca",
|
||||
DEVICE_MCA,
|
||||
1,
|
||||
et4000_init, et4000_close, NULL,
|
||||
{ et4000_available },
|
||||
et4000_speed_changed,
|
||||
et4000_force_redraw,
|
||||
et4000_config
|
||||
.name = "Tseng Labs ET4000AX (MCA)",
|
||||
.internal_name = "et4000mca",
|
||||
.flags = DEVICE_MCA,
|
||||
.local = 1,
|
||||
.init = et4000_init,
|
||||
.close = et4000_close,
|
||||
.reset = NULL,
|
||||
{ .available = et4000_available },
|
||||
.speed_changed = et4000_speed_changed,
|
||||
.force_redraw = et4000_force_redraw,
|
||||
.config = et4000_config
|
||||
};
|
||||
|
||||
const device_t et4000k_isa_device = {
|
||||
"Trigem Korean VGA (Tseng Labs ET4000AX Korean)",
|
||||
"tgkorvga",
|
||||
DEVICE_ISA,
|
||||
2,
|
||||
et4000_init, et4000_close, NULL,
|
||||
{ et4000k_available },
|
||||
et4000_speed_changed,
|
||||
et4000_force_redraw,
|
||||
et4000_config
|
||||
.name = "Trigem Korean VGA (Tseng Labs ET4000AX Korean)",
|
||||
.internal_name = "tgkorvga",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 2,
|
||||
.init = et4000_init,
|
||||
.close = et4000_close,
|
||||
.reset = NULL,
|
||||
{ .available = et4000k_available },
|
||||
.speed_changed = et4000_speed_changed,
|
||||
.force_redraw = et4000_force_redraw,
|
||||
.config = et4000_config
|
||||
};
|
||||
|
||||
const device_t et4000k_tg286_isa_device = {
|
||||
"Trigem Korean VGA (Trigem 286M)",
|
||||
"et4000k_tg286_isa",
|
||||
DEVICE_ISA,
|
||||
3,
|
||||
et4000_init, et4000_close, NULL,
|
||||
{ et4000k_available },
|
||||
et4000_speed_changed,
|
||||
et4000_force_redraw,
|
||||
et4000_config
|
||||
.name = "Trigem Korean VGA (Trigem 286M)",
|
||||
.internal_name = "et4000k_tg286_isa",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 3,
|
||||
.init = et4000_init,
|
||||
.close = et4000_close,
|
||||
.reset = NULL,
|
||||
{ .available = et4000k_available },
|
||||
.speed_changed = et4000_speed_changed,
|
||||
.force_redraw = et4000_force_redraw,
|
||||
.config = et4000_config
|
||||
};
|
||||
|
||||
const device_t et4000_kasan_isa_device = {
|
||||
"Kasan Hangulmadang-16 VGA (Tseng Labs ET4000AX Korean)",
|
||||
"kasan16vga",
|
||||
DEVICE_ISA,
|
||||
4,
|
||||
et4000_init, et4000_close, NULL,
|
||||
{ et4000_kasan_available },
|
||||
et4000_speed_changed,
|
||||
et4000_force_redraw,
|
||||
et4000_config
|
||||
.name = "Kasan Hangulmadang-16 VGA (Tseng Labs ET4000AX Korean)",
|
||||
.internal_name = "kasan16vga",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 4,
|
||||
.init = et4000_init,
|
||||
.close = et4000_close,
|
||||
.reset = NULL,
|
||||
{ .available = et4000_kasan_available },
|
||||
.speed_changed = et4000_speed_changed,
|
||||
.force_redraw = et4000_force_redraw,
|
||||
.config = et4000_config
|
||||
};
|
||||
|
||||
@@ -2190,7 +2190,6 @@ et4000w32p_force_redraw(void *p)
|
||||
et4000->svga.fullchange = changeframecount;
|
||||
}
|
||||
|
||||
|
||||
static const device_config_t et4000w32p_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
@@ -2205,172 +2204,184 @@ static const device_config_t et4000w32p_config[] = {
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
|
||||
const device_t et4000w32_device =
|
||||
{
|
||||
"Tseng Labs ET4000/w32 ISA",
|
||||
"et4000w32",
|
||||
DEVICE_ISA | DEVICE_AT, ET4000W32,
|
||||
et4000w32p_init, et4000w32p_close, NULL,
|
||||
{ et4000w32_available },
|
||||
et4000w32p_speed_changed,
|
||||
et4000w32p_force_redraw,
|
||||
NULL
|
||||
const device_t et4000w32_device = {
|
||||
.name = "Tseng Labs ET4000/w32 ISA",
|
||||
.internal_name = "et4000w32",
|
||||
.flags = DEVICE_ISA | DEVICE_AT, ET4000W32,
|
||||
.init = et4000w32p_init,
|
||||
.close = et4000w32p_close,
|
||||
.reset = NULL,
|
||||
{ .available = et4000w32_available },
|
||||
.speed_changed = et4000w32p_speed_changed,
|
||||
.force_redraw = et4000w32p_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t et4000w32_onboard_device =
|
||||
{
|
||||
"Tseng Labs ET4000/w32 (ISA) (On-Board)",
|
||||
"et4000w32_onboard",
|
||||
DEVICE_ISA | DEVICE_AT, ET4000W32,
|
||||
et4000w32p_init, et4000w32p_close, NULL,
|
||||
{ et4000w32_available },
|
||||
et4000w32p_speed_changed,
|
||||
et4000w32p_force_redraw,
|
||||
NULL
|
||||
const device_t et4000w32_onboard_device = {
|
||||
.name = "Tseng Labs ET4000/w32 (ISA) (On-Board)",
|
||||
.internal_name = "et4000w32_onboard",
|
||||
.flags = DEVICE_ISA | DEVICE_AT, ET4000W32,
|
||||
.init = et4000w32p_init,
|
||||
.close = et4000w32p_close,
|
||||
.reset = NULL,
|
||||
{ .available = et4000w32_available },
|
||||
.speed_changed = et4000w32p_speed_changed,
|
||||
.force_redraw = et4000w32p_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t et4000w32i_isa_device =
|
||||
{
|
||||
"Tseng Labs ET4000/w32i Rev. B ISA",
|
||||
"et4000w32i",
|
||||
DEVICE_ISA | DEVICE_AT, ET4000W32I,
|
||||
et4000w32p_init, et4000w32p_close, NULL,
|
||||
{ et4000w32i_isa_available },
|
||||
et4000w32p_speed_changed,
|
||||
et4000w32p_force_redraw,
|
||||
NULL
|
||||
const device_t et4000w32i_isa_device = {
|
||||
.name = "Tseng Labs ET4000/w32i Rev. B ISA",
|
||||
.internal_name = "et4000w32i",
|
||||
.flags = DEVICE_ISA | DEVICE_AT, ET4000W32I,
|
||||
.init = et4000w32p_init,
|
||||
.close = et4000w32p_close,
|
||||
.reset = NULL,
|
||||
{ .available = et4000w32i_isa_available },
|
||||
.speed_changed = et4000w32p_speed_changed,
|
||||
.force_redraw = et4000w32p_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t et4000w32i_vlb_device =
|
||||
{
|
||||
"Tseng Labs ET4000/w32i Rev. B VLB",
|
||||
"et4000w32i_vlb",
|
||||
DEVICE_VLB, ET4000W32I,
|
||||
et4000w32p_init, et4000w32p_close, NULL,
|
||||
{ et4000w32i_vlb_available },
|
||||
et4000w32p_speed_changed,
|
||||
et4000w32p_force_redraw,
|
||||
et4000w32p_config
|
||||
const device_t et4000w32i_vlb_device = {
|
||||
.name = "Tseng Labs ET4000/w32i Rev. B VLB",
|
||||
.internal_name = "et4000w32i_vlb",
|
||||
.flags = DEVICE_VLB, ET4000W32I,
|
||||
.init = et4000w32p_init,
|
||||
.close = et4000w32p_close,
|
||||
.reset = NULL,
|
||||
{ .available = et4000w32i_vlb_available },
|
||||
.speed_changed = et4000w32p_speed_changed,
|
||||
.force_redraw = et4000w32p_force_redraw,
|
||||
.config = et4000w32p_config
|
||||
};
|
||||
|
||||
const device_t et4000w32p_videomagic_revb_vlb_device =
|
||||
{
|
||||
"Tseng Labs ET4000/w32p Rev. B VLB (VideoMagic)",
|
||||
"et4000w32p_videomagic_revb_vlb",
|
||||
DEVICE_VLB, ET4000W32P_VIDEOMAGIC_REVB,
|
||||
et4000w32p_init, et4000w32p_close, NULL,
|
||||
{ et4000w32p_videomagic_revb_vlb_available },
|
||||
et4000w32p_speed_changed,
|
||||
et4000w32p_force_redraw,
|
||||
et4000w32p_config
|
||||
const device_t et4000w32p_videomagic_revb_vlb_device = {
|
||||
.name = "Tseng Labs ET4000/w32p Rev. B VLB (VideoMagic)",
|
||||
.internal_name = "et4000w32p_videomagic_revb_vlb",
|
||||
.flags = DEVICE_VLB, ET4000W32P_VIDEOMAGIC_REVB,
|
||||
.init = et4000w32p_init,
|
||||
.close = et4000w32p_close,
|
||||
.reset = NULL,
|
||||
{ .available = et4000w32p_videomagic_revb_vlb_available },
|
||||
.speed_changed = et4000w32p_speed_changed,
|
||||
.force_redraw = et4000w32p_force_redraw,
|
||||
.config = et4000w32p_config
|
||||
};
|
||||
|
||||
const device_t et4000w32p_videomagic_revb_pci_device =
|
||||
{
|
||||
"Tseng Labs ET4000/w32p Rev. B PCI (VideoMagic)",
|
||||
"et4000w32p_videomagic_revb_pci",
|
||||
DEVICE_PCI, ET4000W32P_VIDEOMAGIC_REVB,
|
||||
et4000w32p_init, et4000w32p_close, NULL,
|
||||
{ et4000w32p_videomagic_revb_vlb_available },
|
||||
et4000w32p_speed_changed,
|
||||
et4000w32p_force_redraw,
|
||||
et4000w32p_config
|
||||
const device_t et4000w32p_videomagic_revb_pci_device = {
|
||||
.name = "Tseng Labs ET4000/w32p Rev. B PCI (VideoMagic)",
|
||||
.internal_name = "et4000w32p_videomagic_revb_pci",
|
||||
.flags = DEVICE_PCI, ET4000W32P_VIDEOMAGIC_REVB,
|
||||
.init = et4000w32p_init,
|
||||
.close = et4000w32p_close,
|
||||
.reset = NULL,
|
||||
{ .available = et4000w32p_videomagic_revb_vlb_available },
|
||||
.speed_changed = et4000w32p_speed_changed,
|
||||
.force_redraw = et4000w32p_force_redraw,
|
||||
.config = et4000w32p_config
|
||||
};
|
||||
|
||||
|
||||
const device_t et4000w32p_revc_vlb_device =
|
||||
{
|
||||
"Tseng Labs ET4000/w32p Rev. C VLB (Cardex)",
|
||||
"et4000w32p_revc_vlb",
|
||||
DEVICE_VLB, ET4000W32P_REVC,
|
||||
et4000w32p_init, et4000w32p_close, NULL,
|
||||
{ et4000w32p_revc_available },
|
||||
et4000w32p_speed_changed,
|
||||
et4000w32p_force_redraw,
|
||||
et4000w32p_config
|
||||
const device_t et4000w32p_revc_vlb_device = {
|
||||
.name = "Tseng Labs ET4000/w32p Rev. C VLB (Cardex)",
|
||||
.internal_name = "et4000w32p_revc_vlb",
|
||||
.flags = DEVICE_VLB, ET4000W32P_REVC,
|
||||
.init = et4000w32p_init,
|
||||
.close = et4000w32p_close,
|
||||
.reset = NULL,
|
||||
{ .available = et4000w32p_revc_available },
|
||||
.speed_changed = et4000w32p_speed_changed,
|
||||
.force_redraw = et4000w32p_force_redraw,
|
||||
.config = et4000w32p_config
|
||||
};
|
||||
|
||||
const device_t et4000w32p_revc_pci_device =
|
||||
{
|
||||
"Tseng Labs ET4000/w32p Rev. C PCI (Cardex)",
|
||||
"et4000w32p_revc_pci",
|
||||
DEVICE_PCI, ET4000W32P_REVC,
|
||||
et4000w32p_init, et4000w32p_close, NULL,
|
||||
{ et4000w32p_revc_available },
|
||||
et4000w32p_speed_changed,
|
||||
et4000w32p_force_redraw,
|
||||
et4000w32p_config
|
||||
const device_t et4000w32p_revc_pci_device = {
|
||||
.name = "Tseng Labs ET4000/w32p Rev. C PCI (Cardex)",
|
||||
.internal_name = "et4000w32p_revc_pci",
|
||||
.flags = DEVICE_PCI, ET4000W32P_REVC,
|
||||
.init = et4000w32p_init,
|
||||
.close = et4000w32p_close,
|
||||
.reset = NULL,
|
||||
{ .available = et4000w32p_revc_available },
|
||||
.speed_changed = et4000w32p_speed_changed,
|
||||
.force_redraw = et4000w32p_force_redraw,
|
||||
.config = et4000w32p_config
|
||||
};
|
||||
|
||||
const device_t et4000w32p_noncardex_vlb_device =
|
||||
{
|
||||
"Tseng Labs ET4000/w32p Rev. D VLB",
|
||||
"et4000w32p_nc_vlb",
|
||||
DEVICE_VLB, ET4000W32P,
|
||||
et4000w32p_init, et4000w32p_close, NULL,
|
||||
{ et4000w32p_noncardex_available },
|
||||
et4000w32p_speed_changed,
|
||||
et4000w32p_force_redraw,
|
||||
et4000w32p_config
|
||||
const device_t et4000w32p_noncardex_vlb_device = {
|
||||
.name = "Tseng Labs ET4000/w32p Rev. D VLB",
|
||||
.internal_name = "et4000w32p_nc_vlb",
|
||||
.flags = DEVICE_VLB, ET4000W32P,
|
||||
.init = et4000w32p_init,
|
||||
.close = et4000w32p_close,
|
||||
.reset = NULL,
|
||||
{ .available = et4000w32p_noncardex_available },
|
||||
.speed_changed = et4000w32p_speed_changed,
|
||||
.force_redraw = et4000w32p_force_redraw,
|
||||
.config = et4000w32p_config
|
||||
};
|
||||
|
||||
const device_t et4000w32p_noncardex_pci_device =
|
||||
{
|
||||
"Tseng Labs ET4000/w32p Rev. D PCI",
|
||||
"et4000w32p_nc_pci",
|
||||
DEVICE_PCI, ET4000W32P,
|
||||
et4000w32p_init, et4000w32p_close, NULL,
|
||||
{ et4000w32p_noncardex_available },
|
||||
et4000w32p_speed_changed,
|
||||
et4000w32p_force_redraw,
|
||||
et4000w32p_config
|
||||
const device_t et4000w32p_noncardex_pci_device = {
|
||||
.name = "Tseng Labs ET4000/w32p Rev. D PCI",
|
||||
.internal_name = "et4000w32p_nc_pci",
|
||||
.flags = DEVICE_PCI, ET4000W32P,
|
||||
.init = et4000w32p_init,
|
||||
.close = et4000w32p_close,
|
||||
.reset = NULL,
|
||||
{ .available = et4000w32p_noncardex_available },
|
||||
.speed_changed = et4000w32p_speed_changed,
|
||||
.force_redraw = et4000w32p_force_redraw,
|
||||
.config = et4000w32p_config
|
||||
};
|
||||
|
||||
const device_t et4000w32p_cardex_vlb_device =
|
||||
{
|
||||
"Tseng Labs ET4000/w32p Rev. D VLB (Cardex)",
|
||||
"et4000w32p_vlb",
|
||||
DEVICE_VLB, ET4000W32P_CARDEX,
|
||||
et4000w32p_init, et4000w32p_close, NULL,
|
||||
{ et4000w32p_cardex_available },
|
||||
et4000w32p_speed_changed,
|
||||
et4000w32p_force_redraw,
|
||||
et4000w32p_config
|
||||
const device_t et4000w32p_cardex_vlb_device = {
|
||||
.name = "Tseng Labs ET4000/w32p Rev. D VLB (Cardex)",
|
||||
.internal_name = "et4000w32p_vlb",
|
||||
.flags = DEVICE_VLB, ET4000W32P_CARDEX,
|
||||
.init = et4000w32p_init,
|
||||
.close = et4000w32p_close,
|
||||
.reset = NULL,
|
||||
{ .available = et4000w32p_cardex_available },
|
||||
.speed_changed = et4000w32p_speed_changed,
|
||||
.force_redraw = et4000w32p_force_redraw,
|
||||
.config = et4000w32p_config
|
||||
};
|
||||
|
||||
const device_t et4000w32p_cardex_pci_device =
|
||||
{
|
||||
"Tseng Labs ET4000/w32p Rev. D PCI (Cardex)",
|
||||
"et4000w32p_pci",
|
||||
DEVICE_PCI, ET4000W32P_CARDEX,
|
||||
et4000w32p_init, et4000w32p_close, NULL,
|
||||
{ et4000w32p_cardex_available },
|
||||
et4000w32p_speed_changed,
|
||||
et4000w32p_force_redraw,
|
||||
et4000w32p_config
|
||||
const device_t et4000w32p_cardex_pci_device = {
|
||||
.name = "Tseng Labs ET4000/w32p Rev. D PCI (Cardex)",
|
||||
.internal_name = "et4000w32p_pci",
|
||||
.flags = DEVICE_PCI, ET4000W32P_CARDEX,
|
||||
.init = et4000w32p_init,
|
||||
.close = et4000w32p_close,
|
||||
.reset = NULL,
|
||||
{ .available = et4000w32p_cardex_available },
|
||||
.speed_changed = et4000w32p_speed_changed,
|
||||
.force_redraw = et4000w32p_force_redraw,
|
||||
.config = et4000w32p_config
|
||||
};
|
||||
|
||||
const device_t et4000w32p_vlb_device =
|
||||
{
|
||||
"Tseng Labs ET4000/w32p Rev. D VLB (Diamond Stealth32)",
|
||||
"stealth32_vlb",
|
||||
DEVICE_VLB, ET4000W32P_DIAMOND,
|
||||
et4000w32p_init, et4000w32p_close, NULL,
|
||||
{ et4000w32p_available },
|
||||
et4000w32p_speed_changed,
|
||||
et4000w32p_force_redraw,
|
||||
et4000w32p_config
|
||||
const device_t et4000w32p_vlb_device = {
|
||||
.name = "Tseng Labs ET4000/w32p Rev. D VLB (Diamond Stealth32)",
|
||||
.internal_name = "stealth32_vlb",
|
||||
.flags = DEVICE_VLB, ET4000W32P_DIAMOND,
|
||||
.init = et4000w32p_init,
|
||||
.close = et4000w32p_close,
|
||||
.reset = NULL,
|
||||
{ .available = et4000w32p_available },
|
||||
.speed_changed = et4000w32p_speed_changed,
|
||||
.force_redraw = et4000w32p_force_redraw,
|
||||
.config = et4000w32p_config
|
||||
};
|
||||
|
||||
const device_t et4000w32p_pci_device =
|
||||
{
|
||||
"Tseng Labs ET4000/w32p Rev. D PCI (Diamond Stealth32)",
|
||||
"stealth32_pci",
|
||||
DEVICE_PCI, ET4000W32P_DIAMOND,
|
||||
et4000w32p_init, et4000w32p_close, NULL,
|
||||
{ et4000w32p_available },
|
||||
et4000w32p_speed_changed,
|
||||
et4000w32p_force_redraw,
|
||||
et4000w32p_config
|
||||
const device_t et4000w32p_pci_device = {
|
||||
.name = "Tseng Labs ET4000/w32p Rev. D PCI (Diamond Stealth32)",
|
||||
.internal_name = "stealth32_pci",
|
||||
.flags = DEVICE_PCI, ET4000W32P_DIAMOND,
|
||||
.init = et4000w32p_init,
|
||||
.close = et4000w32p_close,
|
||||
.reset = NULL,
|
||||
{ .available = et4000w32p_available },
|
||||
.speed_changed = et4000w32p_speed_changed,
|
||||
.force_redraw = et4000w32p_force_redraw,
|
||||
.config = et4000w32p_config
|
||||
};
|
||||
|
||||
@@ -662,12 +662,15 @@ static void f82c425_speed_changed(void *p)
|
||||
}
|
||||
|
||||
const device_t f82c425_video_device = {
|
||||
"82C425 CGA LCD/CRT Controller",
|
||||
"f82c425_video",
|
||||
0, 0,
|
||||
f82c425_init, f82c425_close, NULL,
|
||||
{ NULL },
|
||||
f82c425_speed_changed,
|
||||
NULL,
|
||||
NULL
|
||||
.name = "82C425 CGA LCD/CRT Controller",
|
||||
.internal_name = "f82c425_video",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = f82c425_init,
|
||||
.close = f82c425_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = f82c425_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -788,15 +788,16 @@ genius_speed_changed(void *p)
|
||||
genius_recalctimings(genius);
|
||||
}
|
||||
|
||||
|
||||
const device_t genius_device =
|
||||
{
|
||||
"Genius VHR",
|
||||
"genius",
|
||||
DEVICE_ISA, 0,
|
||||
genius_init, genius_close, NULL,
|
||||
{ genius_available },
|
||||
genius_speed_changed,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t genius_device = {
|
||||
.name = "Genius VHR",
|
||||
.internal_name = "genius",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = genius_init,
|
||||
.close = genius_close,
|
||||
.reset = NULL,
|
||||
{ .available = genius_available },
|
||||
.speed_changed = genius_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -627,13 +627,15 @@ static const device_config_t hercules_config[] = {
|
||||
};
|
||||
|
||||
const device_t hercules_device = {
|
||||
"Hercules",
|
||||
"hercules",
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
hercules_init, hercules_close, NULL,
|
||||
{ NULL },
|
||||
speed_changed,
|
||||
NULL,
|
||||
hercules_config
|
||||
.name = "Hercules",
|
||||
.internal_name = "hercules",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = hercules_init,
|
||||
.close = hercules_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = hercules_config
|
||||
};
|
||||
|
||||
@@ -712,13 +712,15 @@ static const device_config_t herculesplus_config[] = {
|
||||
};
|
||||
|
||||
const device_t herculesplus_device = {
|
||||
"Hercules Plus",
|
||||
"hercules_plus",
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
herculesplus_init, herculesplus_close, NULL,
|
||||
{ NULL },
|
||||
speed_changed,
|
||||
NULL,
|
||||
herculesplus_config
|
||||
.name = "Hercules Plus",
|
||||
.internal_name = "hercules_plus",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = herculesplus_init,
|
||||
.close = herculesplus_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = herculesplus_config
|
||||
};
|
||||
|
||||
@@ -1662,90 +1662,87 @@ static const device_config_t radius_svga_multiview_config[] = {
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
const device_t g2_gc205_device =
|
||||
{
|
||||
"G2 GC205",
|
||||
"g2_gc205",
|
||||
DEVICE_ISA,
|
||||
0x7070,
|
||||
g2_gc205_init,
|
||||
ht216_close,
|
||||
NULL,
|
||||
{ g2_gc205_available },
|
||||
ht216_speed_changed,
|
||||
ht216_force_redraw
|
||||
const device_t g2_gc205_device = {
|
||||
.name = "G2 GC205",
|
||||
.internal_name = "g2_gc205",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0x7070,
|
||||
.init = g2_gc205_init,
|
||||
.close = ht216_close,
|
||||
.reset = NULL,
|
||||
{ .available = g2_gc205_available },
|
||||
.speed_changed = ht216_speed_changed,
|
||||
.force_redraw = ht216_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t v7_vga_1024i_device =
|
||||
{
|
||||
"Video 7 VGA 1024i (HT208)",
|
||||
"v7_vga_1024i",
|
||||
DEVICE_ISA,
|
||||
0x7140,
|
||||
v7_vga_1024i_init,
|
||||
ht216_close,
|
||||
NULL,
|
||||
{ v7_vga_1024i_available },
|
||||
ht216_speed_changed,
|
||||
ht216_force_redraw,
|
||||
v7_vga_1024i_config
|
||||
const device_t v7_vga_1024i_device = {
|
||||
.name = "Video 7 VGA 1024i (HT208)",
|
||||
.internal_name = "v7_vga_1024i",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0x7140,
|
||||
.init = v7_vga_1024i_init,
|
||||
.close = ht216_close,
|
||||
.reset = NULL,
|
||||
{ .available = v7_vga_1024i_available },
|
||||
.speed_changed = ht216_speed_changed,
|
||||
.force_redraw = ht216_force_redraw,
|
||||
.config = v7_vga_1024i_config
|
||||
};
|
||||
|
||||
const device_t ht216_32_pb410a_device =
|
||||
{
|
||||
"Headland HT216-32 (Packard Bell PB410A)",
|
||||
"ht216_32_pb410a",
|
||||
DEVICE_VLB,
|
||||
0x7861, /*HT216-32*/
|
||||
ht216_pb410a_init,
|
||||
ht216_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
ht216_speed_changed,
|
||||
ht216_force_redraw
|
||||
const device_t ht216_32_pb410a_device = {
|
||||
.name = "Headland HT216-32 (Packard Bell PB410A)",
|
||||
.internal_name = "ht216_32_pb410a",
|
||||
.flags = DEVICE_VLB,
|
||||
.local = 0x7861, /*HT216-32*/
|
||||
.init = ht216_pb410a_init,
|
||||
.close = ht216_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = ht216_speed_changed,
|
||||
.force_redraw = ht216_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ht216_32_standalone_device =
|
||||
{
|
||||
"Headland HT216-32",
|
||||
"ht216_32",
|
||||
DEVICE_VLB,
|
||||
0x7861, /*HT216-32*/
|
||||
ht216_standalone_init,
|
||||
ht216_close,
|
||||
NULL,
|
||||
{ ht216_standalone_available },
|
||||
ht216_speed_changed,
|
||||
ht216_force_redraw,
|
||||
ht216_32_standalone_config
|
||||
const device_t ht216_32_standalone_device = {
|
||||
.name = "Headland HT216-32",
|
||||
.internal_name = "ht216_32",
|
||||
.flags = DEVICE_VLB,
|
||||
.local = 0x7861, /*HT216-32*/
|
||||
.init = ht216_standalone_init,
|
||||
.close = ht216_close,
|
||||
.reset = NULL,
|
||||
{ .available = ht216_standalone_available },
|
||||
.speed_changed = ht216_speed_changed,
|
||||
.force_redraw = ht216_force_redraw,
|
||||
.config = ht216_32_standalone_config
|
||||
};
|
||||
|
||||
const device_t radius_svga_multiview_isa_device =
|
||||
{
|
||||
"Radius SVGA Multiview ISA (HT209)",
|
||||
"radius_isa",
|
||||
DEVICE_ISA | DEVICE_AT,
|
||||
0x7152, /*HT209*/
|
||||
radius_svga_multiview_init,
|
||||
ht216_close,
|
||||
NULL,
|
||||
{ radius_svga_multiview_available },
|
||||
ht216_speed_changed,
|
||||
ht216_force_redraw,
|
||||
radius_svga_multiview_config
|
||||
const device_t radius_svga_multiview_isa_device = {
|
||||
.name = "Radius SVGA Multiview ISA (HT209)",
|
||||
.internal_name = "radius_isa",
|
||||
.flags = DEVICE_ISA | DEVICE_AT,
|
||||
.local = 0x7152, /*HT209*/
|
||||
.init = radius_svga_multiview_init,
|
||||
.close = ht216_close,
|
||||
.reset = NULL,
|
||||
{ .available = radius_svga_multiview_available },
|
||||
.speed_changed = ht216_speed_changed,
|
||||
.force_redraw = ht216_force_redraw,
|
||||
radius_svga_multiview_config,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t radius_svga_multiview_mca_device =
|
||||
{
|
||||
"Radius SVGA Multiview MCA (HT209)",
|
||||
"radius_mc",
|
||||
DEVICE_MCA,
|
||||
0x7152, /*HT209*/
|
||||
radius_svga_multiview_init,
|
||||
ht216_close,
|
||||
NULL,
|
||||
{ radius_svga_multiview_available },
|
||||
ht216_speed_changed,
|
||||
ht216_force_redraw,
|
||||
NULL
|
||||
const device_t radius_svga_multiview_mca_device = {
|
||||
.name = "Radius SVGA Multiview MCA (HT209)",
|
||||
.internal_name = "radius_mc",
|
||||
.flags = DEVICE_MCA,
|
||||
.local = 0x7152, /*HT209*/
|
||||
.init = radius_svga_multiview_init,
|
||||
.close = ht216_close,
|
||||
.reset = NULL,
|
||||
{ .available = radius_svga_multiview_available },
|
||||
.speed_changed = ht216_speed_changed,
|
||||
.force_redraw = ht216_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -953,11 +953,16 @@ ibm_rgb528_ramdac_close(void *priv)
|
||||
free(ramdac);
|
||||
}
|
||||
|
||||
|
||||
const device_t ibm_rgb528_ramdac_device = {
|
||||
"IBM RGB528 RAMDAC",
|
||||
"ibm_rgb528_ramdac",
|
||||
0, 0,
|
||||
ibm_rgb528_ramdac_init, ibm_rgb528_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL, NULL
|
||||
.name = "IBM RGB528 RAMDAC",
|
||||
.internal_name = "ibm_rgb528_ramdac",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = ibm_rgb528_ramdac_init,
|
||||
.close = ibm_rgb528_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -165,22 +165,30 @@ icd2061_close(void *priv)
|
||||
free(icd2061);
|
||||
}
|
||||
|
||||
|
||||
const device_t icd2061_device =
|
||||
{
|
||||
"ICD2061 Clock Generator",
|
||||
"icd2061",
|
||||
0, 0,
|
||||
icd2061_init, icd2061_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t icd2061_device = {
|
||||
.name = "ICD2061 Clock Generator",
|
||||
.internal_name = "icd2061",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = icd2061_init,
|
||||
.close = icd2061_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
|
||||
const device_t ics9161_device =
|
||||
{
|
||||
"ICS9161 Clock Generator",
|
||||
"ics9161",
|
||||
0, 0,
|
||||
icd2061_init, icd2061_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t ics9161_device = {
|
||||
.name = "ICS9161 Clock Generator",
|
||||
.internal_name = "ics9161",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = icd2061_init,
|
||||
.close = icd2061_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -104,12 +104,16 @@ ics2494_close(void *priv)
|
||||
free(ics2494);
|
||||
}
|
||||
|
||||
|
||||
const device_t ics2494an_305_device =
|
||||
{
|
||||
"ICS2494AN-305 Clock Generator",
|
||||
"ics2494an_305",
|
||||
0, 305,
|
||||
ics2494_init, ics2494_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t ics2494an_305_device = {
|
||||
.name = "ICS2494AN-305 Clock Generator",
|
||||
.internal_name = "ics2494an_305",
|
||||
.flags = 0,
|
||||
.local = 305,
|
||||
.init = ics2494_init,
|
||||
.close = ics2494_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -123,12 +123,16 @@ ics2595_setclock(void *p, double clock)
|
||||
ics2595->output_clock = clock;
|
||||
}
|
||||
|
||||
|
||||
const device_t ics2595_device =
|
||||
{
|
||||
"ICS2595 clock chip",
|
||||
"ics2595",
|
||||
0, 0,
|
||||
ics2595_init, ics2595_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t ics2595_device = {
|
||||
.name = "ICS2595 clock chip",
|
||||
.internal_name = "ics2595",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = ics2595_init,
|
||||
.close = ics2595_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -1030,12 +1030,15 @@ im1024_speed_changed(void *priv)
|
||||
|
||||
|
||||
const device_t im1024_device = {
|
||||
"ImageManager 1024",
|
||||
"im1024",
|
||||
DEVICE_ISA | DEVICE_AT, 0,
|
||||
im1024_init, im1024_close, NULL,
|
||||
{ im1024_available },
|
||||
im1024_speed_changed,
|
||||
NULL,
|
||||
NULL
|
||||
.name = "ImageManager 1024",
|
||||
.internal_name = "im1024",
|
||||
.flags = DEVICE_ISA | DEVICE_AT,
|
||||
.local = 0,
|
||||
.init = im1024_init,
|
||||
.close = im1024_close,
|
||||
.reset = NULL,
|
||||
{ .available = im1024_available },
|
||||
.speed_changed = im1024_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -1091,15 +1091,16 @@ speed_changed(void *priv)
|
||||
recalc_timings(dev);
|
||||
}
|
||||
|
||||
|
||||
const device_t incolor_device = {
|
||||
"Hercules InColor",
|
||||
"incolor",
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
incolor_init, incolor_close, NULL,
|
||||
{ NULL },
|
||||
speed_changed,
|
||||
NULL,
|
||||
NULL
|
||||
.name = "Hercules InColor",
|
||||
.internal_name = "incolor",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = incolor_init,
|
||||
.close = incolor_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -344,12 +344,15 @@ static const device_config_t mda_config[] = {
|
||||
};
|
||||
|
||||
const device_t mda_device = {
|
||||
"MDA",
|
||||
"mda",
|
||||
DEVICE_ISA, 0,
|
||||
mda_standalone_init, mda_close, NULL,
|
||||
{ NULL },
|
||||
mda_speed_changed,
|
||||
NULL,
|
||||
mda_config
|
||||
.name = "MDA",
|
||||
.internal_name = "mda",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = mda_standalone_init,
|
||||
.close = mda_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = mda_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = mda_config
|
||||
};
|
||||
|
||||
@@ -5369,47 +5369,47 @@ static const device_config_t mystique_config[] = {
|
||||
|
||||
const device_t millennium_device =
|
||||
{
|
||||
"Matrox Millennium",
|
||||
"millennium",
|
||||
DEVICE_PCI,
|
||||
MGA_2064W,
|
||||
mystique_init,
|
||||
mystique_close,
|
||||
NULL,
|
||||
{ millennium_available },
|
||||
mystique_speed_changed,
|
||||
mystique_force_redraw,
|
||||
mystique_config
|
||||
.name = "Matrox Millennium",
|
||||
.internal_name = "millennium",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = MGA_2064W,
|
||||
.init = mystique_init,
|
||||
.close = mystique_close,
|
||||
.reset = NULL,
|
||||
{ .available = millennium_available },
|
||||
.speed_changed = mystique_speed_changed,
|
||||
.force_redraw = mystique_force_redraw,
|
||||
.config = mystique_config
|
||||
};
|
||||
|
||||
|
||||
const device_t mystique_device =
|
||||
{
|
||||
"Matrox Mystique",
|
||||
"mystique",
|
||||
DEVICE_PCI,
|
||||
MGA_1064SG,
|
||||
mystique_init,
|
||||
mystique_close,
|
||||
NULL,
|
||||
{ mystique_available },
|
||||
mystique_speed_changed,
|
||||
mystique_force_redraw,
|
||||
mystique_config
|
||||
.name = "Matrox Mystique",
|
||||
.internal_name = "mystique",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = MGA_1064SG,
|
||||
.init = mystique_init,
|
||||
.close = mystique_close,
|
||||
.reset = NULL,
|
||||
{ .available = mystique_available },
|
||||
.speed_changed = mystique_speed_changed,
|
||||
.force_redraw = mystique_force_redraw,
|
||||
.config = mystique_config
|
||||
};
|
||||
|
||||
|
||||
const device_t mystique_220_device =
|
||||
{
|
||||
"Matrox Mystique 220",
|
||||
"mystique_220",
|
||||
DEVICE_PCI,
|
||||
MGA_1164SG,
|
||||
mystique_init,
|
||||
mystique_close,
|
||||
NULL,
|
||||
{ mystique_220_available },
|
||||
mystique_speed_changed,
|
||||
mystique_force_redraw,
|
||||
mystique_config
|
||||
.name = "Matrox Mystique 220",
|
||||
.internal_name = "mystique_220",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = MGA_1164SG,
|
||||
.init = mystique_init,
|
||||
.close = mystique_close,
|
||||
.reset = NULL,
|
||||
{ .available = mystique_220_available },
|
||||
.speed_changed = mystique_speed_changed,
|
||||
.force_redraw = mystique_force_redraw,
|
||||
.config = mystique_config
|
||||
};
|
||||
|
||||
@@ -638,14 +638,15 @@ const device_config_t nga_config[] = {
|
||||
};
|
||||
|
||||
const device_t nga_device = {
|
||||
"NCR NGA",
|
||||
"nga",
|
||||
DEVICE_ISA, 0,
|
||||
nga_init,
|
||||
nga_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
nga_speed_changed,
|
||||
NULL,
|
||||
nga_config
|
||||
.name = "NCR NGA",
|
||||
.internal_name = "nga",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = nga_init,
|
||||
.close = nga_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = nga_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = nga_config
|
||||
};
|
||||
|
||||
@@ -541,60 +541,71 @@ static const device_config_t oti077_config[] = {
|
||||
// clang-format on
|
||||
|
||||
const device_t oti037c_device = {
|
||||
"Oak OTI-037C",
|
||||
"oti037c",
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
oti_init, oti_close, NULL,
|
||||
{ oti037c_available },
|
||||
oti_speed_changed,
|
||||
oti_force_redraw
|
||||
.name = "Oak OTI-037C",
|
||||
.internal_name = "oti037c",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = oti_init,
|
||||
.close = oti_close,
|
||||
.reset = NULL,
|
||||
{ .available = oti037c_available },
|
||||
.speed_changed = oti_speed_changed,
|
||||
.force_redraw = oti_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t oti067_device = {
|
||||
"Oak OTI-067",
|
||||
"oti067",
|
||||
DEVICE_ISA,
|
||||
2,
|
||||
oti_init, oti_close, NULL,
|
||||
{ oti067_077_available },
|
||||
oti_speed_changed,
|
||||
oti_force_redraw,
|
||||
oti067_config
|
||||
.name = "Oak OTI-067",
|
||||
.internal_name = "oti067",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 2,
|
||||
.init = oti_init,
|
||||
.close = oti_close,
|
||||
.reset = NULL,
|
||||
{ .available = oti067_077_available },
|
||||
.speed_changed = oti_speed_changed,
|
||||
.force_redraw = oti_force_redraw,
|
||||
.config = oti067_config
|
||||
};
|
||||
|
||||
const device_t oti067_m300_device = {
|
||||
"Oak OTI-067 (Olivetti M300-08/15)",
|
||||
"oti067_m300",
|
||||
DEVICE_ISA,
|
||||
4,
|
||||
oti_init, oti_close, NULL,
|
||||
{ oti067_m300_available },
|
||||
oti_speed_changed,
|
||||
oti_force_redraw,
|
||||
oti067_config
|
||||
.name = "Oak OTI-067 (Olivetti M300-08/15)",
|
||||
.internal_name = "oti067_m300",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 4,
|
||||
.init = oti_init,
|
||||
.close = oti_close,
|
||||
.reset = NULL,
|
||||
{ .available = oti067_m300_available },
|
||||
.speed_changed = oti_speed_changed,
|
||||
.force_redraw = oti_force_redraw,
|
||||
.config = oti067_config
|
||||
};
|
||||
|
||||
const device_t oti067_ama932j_device = {
|
||||
"Oak OTI-067 (AMA-932J)",
|
||||
"oti067_ama932j",
|
||||
DEVICE_ISA,
|
||||
3,
|
||||
oti_init, oti_close, NULL,
|
||||
{ oti067_ama932j_available },
|
||||
oti_speed_changed,
|
||||
oti_force_redraw,
|
||||
oti067_ama932j_config
|
||||
.name = "Oak OTI-067 (AMA-932J)",
|
||||
.internal_name = "oti067_ama932j",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 3,
|
||||
.init = oti_init,
|
||||
.close = oti_close,
|
||||
.reset = NULL,
|
||||
{ .available = oti067_ama932j_available },
|
||||
.speed_changed = oti_speed_changed,
|
||||
.force_redraw = oti_force_redraw,
|
||||
.config = oti067_ama932j_config
|
||||
};
|
||||
|
||||
const device_t oti077_device = {
|
||||
"Oak OTI-077",
|
||||
"oti077",
|
||||
DEVICE_ISA,
|
||||
5,
|
||||
oti_init, oti_close, NULL,
|
||||
{ oti067_077_available },
|
||||
oti_speed_changed,
|
||||
oti_force_redraw,
|
||||
oti077_config
|
||||
.name = "Oak OTI-077",
|
||||
.internal_name = "oti077",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 5,
|
||||
.init = oti_init,
|
||||
.close = oti_close,
|
||||
.reset = NULL,
|
||||
{ .available = oti067_077_available },
|
||||
.speed_changed = oti_speed_changed,
|
||||
.force_redraw = oti_force_redraw,
|
||||
.config = oti077_config
|
||||
};
|
||||
|
||||
@@ -653,30 +653,30 @@ const device_config_t ogc_m24_config[] = {
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
const device_t ogc_m24_device =
|
||||
{
|
||||
"Olivetti M21/M24/M28 (GO317/318/380/709) video card",
|
||||
"ogc_m24",
|
||||
DEVICE_ISA, 0,
|
||||
ogc_init,
|
||||
ogc_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
ogc_speed_changed,
|
||||
NULL,
|
||||
ogc_m24_config
|
||||
const device_t ogc_m24_device = {
|
||||
.name = "Olivetti M21/M24/M28 (GO317/318/380/709) video card",
|
||||
.internal_name = "ogc_m24",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = ogc_init,
|
||||
.close = ogc_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = ogc_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = ogc_m24_config
|
||||
};
|
||||
|
||||
const device_t ogc_device =
|
||||
{
|
||||
"Olivetti OGC (GO708)",
|
||||
"ogc",
|
||||
DEVICE_ISA, 0,
|
||||
ogc_init,
|
||||
ogc_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
ogc_speed_changed,
|
||||
NULL,
|
||||
cga_config
|
||||
const device_t ogc_device = {
|
||||
.name = "Olivetti OGC (GO708)",
|
||||
.internal_name = "ogc",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = ogc_init,
|
||||
.close = ogc_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = ogc_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = cga_config
|
||||
};
|
||||
|
||||
@@ -840,17 +840,16 @@ static const device_config_t paradise_wd90c30_config[] = {
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
const device_t paradise_wd90c30_device =
|
||||
{
|
||||
"Paradise WD90C30-LR",
|
||||
"wd90c30",
|
||||
DEVICE_ISA,
|
||||
WD90C30,
|
||||
paradise_wd90c30_standalone_init,
|
||||
paradise_close,
|
||||
NULL,
|
||||
{ paradise_wd90c30_standalone_available },
|
||||
paradise_speed_changed,
|
||||
paradise_force_redraw,
|
||||
paradise_wd90c30_config
|
||||
const device_t paradise_wd90c30_device = {
|
||||
.name = "Paradise WD90C30-LR",
|
||||
.internal_name = "wd90c30",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = WD90C30,
|
||||
.init = paradise_wd90c30_standalone_init,
|
||||
.close = paradise_close,
|
||||
.reset = NULL,
|
||||
{ .available = paradise_wd90c30_standalone_available },
|
||||
.speed_changed = paradise_speed_changed,
|
||||
.force_redraw = paradise_force_redraw,
|
||||
.config = paradise_wd90c30_config
|
||||
};
|
||||
|
||||
@@ -2729,14 +2729,15 @@ pgc_standalone_init(const device_t *info)
|
||||
|
||||
|
||||
const device_t pgc_device = {
|
||||
"PGC",
|
||||
"pgc",
|
||||
DEVICE_ISA, 0,
|
||||
pgc_standalone_init,
|
||||
pgc_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
pgc_speed_changed,
|
||||
NULL,
|
||||
NULL
|
||||
.name = "PGC",
|
||||
.internal_name = "pgc",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = pgc_standalone_init,
|
||||
.close = pgc_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = pgc_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -374,13 +374,15 @@ static const device_config_t rtg_config[] = {
|
||||
};
|
||||
|
||||
const device_t realtek_rtg3106_device = {
|
||||
"Realtek RTG3106 (ISA)",
|
||||
"rtg3106",
|
||||
DEVICE_ISA | DEVICE_AT,
|
||||
2,
|
||||
rtg_init, rtg_close, NULL,
|
||||
{ rtg_available },
|
||||
rtg_speed_changed,
|
||||
rtg_force_redraw,
|
||||
rtg_config
|
||||
.name = "Realtek RTG3106 (ISA)",
|
||||
.internal_name = "rtg3106",
|
||||
.flags = DEVICE_ISA | DEVICE_AT,
|
||||
.local = 2,
|
||||
.init = rtg_init,
|
||||
.close = rtg_close,
|
||||
.reset = NULL,
|
||||
{ .available = rtg_available },
|
||||
.speed_changed = rtg_speed_changed,
|
||||
.force_redraw = rtg_force_redraw,
|
||||
.config = rtg_config
|
||||
};
|
||||
|
||||
1343
src/video/vid_s3.c
@@ -4217,294 +4217,233 @@ static void s3_virge_force_redraw(void *p)
|
||||
virge->svga.fullchange = changeframecount;
|
||||
}
|
||||
|
||||
static const device_config_t s3_virge_config[] =
|
||||
{
|
||||
static const device_config_t s3_virge_config[] = {
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 4, "", { 0 },
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 4, "", { 0 },
|
||||
{
|
||||
{
|
||||
"2 MB", 2
|
||||
},
|
||||
{
|
||||
"4 MB", 4
|
||||
},
|
||||
{
|
||||
""
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"bilinear", "Bilinear filtering", CONFIG_BINARY, "", 1
|
||||
},
|
||||
{
|
||||
"dithering", "Dithering", CONFIG_BINARY, "", 1
|
||||
},
|
||||
{
|
||||
"", "", -1
|
||||
{ "2 MB", 2 },
|
||||
{ "4 MB", 4 },
|
||||
{ "" }
|
||||
}
|
||||
},
|
||||
{ "bilinear", "Bilinear filtering", CONFIG_BINARY, "", 1 },
|
||||
{ "dithering", "Dithering", CONFIG_BINARY, "", 1 },
|
||||
{ "", "", -1 }
|
||||
};
|
||||
|
||||
static const device_config_t s3_virge_stb_config[] =
|
||||
{
|
||||
static const device_config_t s3_virge_stb_config[] = {
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 4, "", { 0 },
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 4, "", { 0 },
|
||||
{
|
||||
{
|
||||
"2 MB", 2
|
||||
},
|
||||
{
|
||||
"4 MB", 4
|
||||
},
|
||||
{
|
||||
"8 MB", 8
|
||||
},
|
||||
{
|
||||
""
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"bilinear", "Bilinear filtering", CONFIG_BINARY, "", 1
|
||||
},
|
||||
{
|
||||
"dithering", "Dithering", CONFIG_BINARY, "", 1
|
||||
},
|
||||
{
|
||||
"", "", -1
|
||||
{ "2 MB", 2 },
|
||||
{ "4 MB", 4 },
|
||||
{ "8 MB", 8 },
|
||||
{ "" }
|
||||
}
|
||||
},
|
||||
{ "bilinear", "Bilinear filtering", CONFIG_BINARY, "", 1 },
|
||||
{ "dithering", "Dithering", CONFIG_BINARY, "", 1 },
|
||||
{ "", "", -1 }
|
||||
};
|
||||
|
||||
static const device_config_t s3_virge_357_config[] =
|
||||
{
|
||||
static const device_config_t s3_virge_357_config[] = {
|
||||
{ "bilinear", "Bilinear filtering", CONFIG_BINARY, "", 1 },
|
||||
{ "dithering", "Dithering", CONFIG_BINARY, "", 1 },
|
||||
{ "", "", -1 }
|
||||
};
|
||||
|
||||
static const device_config_t s3_trio3d2x_config[] = {
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 4, "", { 0 },
|
||||
{
|
||||
"bilinear", "Bilinear filtering", CONFIG_BINARY, "", 1
|
||||
},
|
||||
{
|
||||
"dithering", "Dithering", CONFIG_BINARY, "", 1
|
||||
},
|
||||
{
|
||||
"", "", -1
|
||||
{ "4 MB", 4 },
|
||||
{ "8 MB", 8 },
|
||||
{ "" }
|
||||
}
|
||||
},
|
||||
{ "bilinear", "Bilinear filtering", CONFIG_BINARY, "", 1 },
|
||||
{ "dithering", "Dithering", CONFIG_BINARY, "", 1 },
|
||||
{ "", "", -1 }
|
||||
};
|
||||
|
||||
static const device_config_t s3_trio3d2x_config[] =
|
||||
{
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 4, "", { 0 },
|
||||
{
|
||||
{
|
||||
"4 MB", 4
|
||||
},
|
||||
{
|
||||
"8 MB", 8
|
||||
},
|
||||
{
|
||||
""
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"bilinear", "Bilinear filtering", CONFIG_BINARY, "", 1
|
||||
},
|
||||
{
|
||||
"dithering", "Dithering", CONFIG_BINARY, "", 1
|
||||
},
|
||||
{
|
||||
"", "", -1
|
||||
}
|
||||
const device_t s3_virge_325_pci_device = {
|
||||
.name = "S3 ViRGE (325) PCI",
|
||||
.internal_name = "virge325_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = S3_VIRGE_325,
|
||||
.init = s3_virge_init,
|
||||
.close = s3_virge_close,
|
||||
.reset = s3_virge_reset,
|
||||
{ .available = s3_virge_325_available },
|
||||
.speed_changed = s3_virge_speed_changed,
|
||||
.force_redraw = s3_virge_force_redraw,
|
||||
.config = s3_virge_config
|
||||
};
|
||||
|
||||
const device_t s3_virge_325_pci_device =
|
||||
{
|
||||
"S3 ViRGE (325) PCI",
|
||||
"virge325_pci",
|
||||
DEVICE_PCI,
|
||||
S3_VIRGE_325,
|
||||
s3_virge_init,
|
||||
s3_virge_close,
|
||||
s3_virge_reset,
|
||||
{ s3_virge_325_available },
|
||||
s3_virge_speed_changed,
|
||||
s3_virge_force_redraw,
|
||||
s3_virge_config
|
||||
const device_t s3_diamond_stealth_2000_pci_device = {
|
||||
.name = "S3 ViRGE (Diamond Stealth 3D 2000) PCI",
|
||||
.internal_name = "stealth3d_2000_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = S3_DIAMOND_STEALTH3D_2000,
|
||||
.init = s3_virge_init,
|
||||
.close = s3_virge_close,
|
||||
.reset = s3_virge_reset,
|
||||
{ .available = s3_virge_325_diamond_available },
|
||||
.speed_changed = s3_virge_speed_changed,
|
||||
.force_redraw = s3_virge_force_redraw,
|
||||
.config = s3_virge_config
|
||||
};
|
||||
|
||||
const device_t s3_diamond_stealth_2000_pci_device =
|
||||
{
|
||||
"S3 ViRGE (Diamond Stealth 3D 2000) PCI",
|
||||
"stealth3d_2000_pci",
|
||||
DEVICE_PCI,
|
||||
S3_DIAMOND_STEALTH3D_2000,
|
||||
s3_virge_init,
|
||||
s3_virge_close,
|
||||
s3_virge_reset,
|
||||
{ s3_virge_325_diamond_available },
|
||||
s3_virge_speed_changed,
|
||||
s3_virge_force_redraw,
|
||||
s3_virge_config
|
||||
const device_t s3_diamond_stealth_3000_pci_device = {
|
||||
.name = "S3 ViRGE/VX (Diamond Stealth 3D 3000) PCI",
|
||||
.internal_name = "stealth3d_3000_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = S3_DIAMOND_STEALTH3D_3000,
|
||||
.init = s3_virge_init,
|
||||
.close = s3_virge_close,
|
||||
.reset = s3_virge_reset,
|
||||
{ .available = s3_virge_988_diamond_available },
|
||||
.speed_changed = s3_virge_speed_changed,
|
||||
.force_redraw = s3_virge_force_redraw,
|
||||
.config = s3_virge_stb_config
|
||||
};
|
||||
|
||||
const device_t s3_diamond_stealth_3000_pci_device =
|
||||
{
|
||||
"S3 ViRGE/VX (Diamond Stealth 3D 3000) PCI",
|
||||
"stealth3d_3000_pci",
|
||||
DEVICE_PCI,
|
||||
S3_DIAMOND_STEALTH3D_3000,
|
||||
s3_virge_init,
|
||||
s3_virge_close,
|
||||
s3_virge_reset,
|
||||
{ s3_virge_988_diamond_available },
|
||||
s3_virge_speed_changed,
|
||||
s3_virge_force_redraw,
|
||||
s3_virge_stb_config
|
||||
const device_t s3_stb_velocity_3d_pci_device = {
|
||||
.name = "S3 ViRGE/VX (STB Velocity 3D) PCI",
|
||||
.internal_name = "stb_velocity3d_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = S3_STB_VELOCITY_3D,
|
||||
.init = s3_virge_init,
|
||||
.close = s3_virge_close,
|
||||
.reset = s3_virge_reset,
|
||||
{ .available = s3_virge_988_stb_available },
|
||||
.speed_changed = s3_virge_speed_changed,
|
||||
.force_redraw = s3_virge_force_redraw,
|
||||
.config = s3_virge_stb_config
|
||||
};
|
||||
|
||||
const device_t s3_stb_velocity_3d_pci_device =
|
||||
{
|
||||
"S3 ViRGE/VX (STB Velocity 3D) PCI",
|
||||
"stb_velocity3d_pci",
|
||||
DEVICE_PCI,
|
||||
S3_STB_VELOCITY_3D,
|
||||
s3_virge_init,
|
||||
s3_virge_close,
|
||||
s3_virge_reset,
|
||||
{ s3_virge_988_stb_available },
|
||||
s3_virge_speed_changed,
|
||||
s3_virge_force_redraw,
|
||||
s3_virge_stb_config
|
||||
const device_t s3_virge_375_pci_device = {
|
||||
.name = "S3 ViRGE/DX (375) PCI",
|
||||
.internal_name = "virge375_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = S3_VIRGE_DX,
|
||||
.init = s3_virge_init,
|
||||
.close = s3_virge_close,
|
||||
.reset = s3_virge_reset,
|
||||
{ .available = s3_virge_375_available },
|
||||
.speed_changed = s3_virge_speed_changed,
|
||||
.force_redraw = s3_virge_force_redraw,
|
||||
.config = s3_virge_config
|
||||
};
|
||||
|
||||
const device_t s3_virge_375_pci_device =
|
||||
{
|
||||
"S3 ViRGE/DX (375) PCI",
|
||||
"virge375_pci",
|
||||
DEVICE_PCI,
|
||||
S3_VIRGE_DX,
|
||||
s3_virge_init,
|
||||
s3_virge_close,
|
||||
s3_virge_reset,
|
||||
{ s3_virge_375_available },
|
||||
s3_virge_speed_changed,
|
||||
s3_virge_force_redraw,
|
||||
s3_virge_config
|
||||
const device_t s3_diamond_stealth_2000pro_pci_device = {
|
||||
.name = "S3 ViRGE/DX (Diamond Stealth 3D 2000 Pro) PCI",
|
||||
.internal_name = "stealth3d_2000pro_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = S3_DIAMOND_STEALTH3D_2000PRO,
|
||||
.init = s3_virge_init,
|
||||
.close = s3_virge_close,
|
||||
.reset = s3_virge_reset,
|
||||
{ .available = s3_virge_375_diamond_available },
|
||||
.speed_changed = s3_virge_speed_changed,
|
||||
.force_redraw = s3_virge_force_redraw,
|
||||
.config = s3_virge_config
|
||||
};
|
||||
|
||||
const device_t s3_diamond_stealth_2000pro_pci_device =
|
||||
{
|
||||
"S3 ViRGE/DX (Diamond Stealth 3D 2000 Pro) PCI",
|
||||
"stealth3d_2000pro_pci",
|
||||
DEVICE_PCI,
|
||||
S3_DIAMOND_STEALTH3D_2000PRO,
|
||||
s3_virge_init,
|
||||
s3_virge_close,
|
||||
s3_virge_reset,
|
||||
{ s3_virge_375_diamond_available },
|
||||
s3_virge_speed_changed,
|
||||
s3_virge_force_redraw,
|
||||
s3_virge_config
|
||||
const device_t s3_virge_385_pci_device = {
|
||||
.name = "S3 ViRGE/GX (385) PCI",
|
||||
.internal_name = "virge385_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = S3_VIRGE_GX,
|
||||
.init = s3_virge_init,
|
||||
.close = s3_virge_close,
|
||||
.reset = s3_virge_reset,
|
||||
{ .available = s3_virge_385_available },
|
||||
.speed_changed = s3_virge_speed_changed,
|
||||
.force_redraw = s3_virge_force_redraw,
|
||||
.config = s3_virge_config
|
||||
};
|
||||
|
||||
const device_t s3_virge_385_pci_device =
|
||||
{
|
||||
"S3 ViRGE/GX (385) PCI",
|
||||
"virge385_pci",
|
||||
DEVICE_PCI,
|
||||
S3_VIRGE_GX,
|
||||
s3_virge_init,
|
||||
s3_virge_close,
|
||||
s3_virge_reset,
|
||||
{ s3_virge_385_available },
|
||||
s3_virge_speed_changed,
|
||||
s3_virge_force_redraw,
|
||||
s3_virge_config
|
||||
const device_t s3_virge_357_pci_device = {
|
||||
.name = "S3 ViRGE/GX2 (357) PCI",
|
||||
.internal_name = "virge357_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = S3_VIRGE_GX2,
|
||||
.init = s3_virge_init,
|
||||
.close = s3_virge_close,
|
||||
.reset = s3_virge_reset,
|
||||
{ .available = s3_virge_357_available },
|
||||
.speed_changed = s3_virge_speed_changed,
|
||||
.force_redraw = s3_virge_force_redraw,
|
||||
.config = s3_virge_357_config
|
||||
};
|
||||
|
||||
const device_t s3_virge_357_pci_device =
|
||||
{
|
||||
"S3 ViRGE/GX2 (357) PCI",
|
||||
"virge357_pci",
|
||||
DEVICE_PCI,
|
||||
S3_VIRGE_GX2,
|
||||
s3_virge_init,
|
||||
s3_virge_close,
|
||||
s3_virge_reset,
|
||||
{ s3_virge_357_available },
|
||||
s3_virge_speed_changed,
|
||||
s3_virge_force_redraw,
|
||||
s3_virge_357_config
|
||||
const device_t s3_virge_357_agp_device = {
|
||||
.name = "S3 ViRGE/GX2 (357) AGP",
|
||||
.internal_name = "virge357_agp",
|
||||
.flags = DEVICE_AGP,
|
||||
.local = S3_VIRGE_GX2,
|
||||
.init = s3_virge_init,
|
||||
.close = s3_virge_close,
|
||||
.reset = s3_virge_reset,
|
||||
{ .available = s3_virge_357_available },
|
||||
.speed_changed = s3_virge_speed_changed,
|
||||
.force_redraw = s3_virge_force_redraw,
|
||||
.config = s3_virge_357_config
|
||||
};
|
||||
|
||||
const device_t s3_virge_357_agp_device =
|
||||
{
|
||||
"S3 ViRGE/GX2 (357) AGP",
|
||||
"virge357_agp",
|
||||
DEVICE_AGP,
|
||||
S3_VIRGE_GX2,
|
||||
s3_virge_init,
|
||||
s3_virge_close,
|
||||
s3_virge_reset,
|
||||
{ s3_virge_357_available },
|
||||
s3_virge_speed_changed,
|
||||
s3_virge_force_redraw,
|
||||
s3_virge_357_config
|
||||
const device_t s3_diamond_stealth_4000_pci_device = {
|
||||
.name = "S3 ViRGE/GX2 (Diamond Stealth 3D 4000) PCI",
|
||||
.internal_name = "stealth3d_4000_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = S3_DIAMOND_STEALTH3D_4000,
|
||||
.init = s3_virge_init,
|
||||
.close = s3_virge_close,
|
||||
.reset = s3_virge_reset,
|
||||
{ .available = s3_virge_357_diamond_available },
|
||||
.speed_changed = s3_virge_speed_changed,
|
||||
.force_redraw = s3_virge_force_redraw,
|
||||
.config = s3_virge_357_config
|
||||
};
|
||||
|
||||
const device_t s3_diamond_stealth_4000_pci_device =
|
||||
{
|
||||
"S3 ViRGE/GX2 (Diamond Stealth 3D 4000) PCI",
|
||||
"stealth3d_4000_pci",
|
||||
DEVICE_PCI,
|
||||
S3_DIAMOND_STEALTH3D_4000,
|
||||
s3_virge_init,
|
||||
s3_virge_close,
|
||||
s3_virge_reset,
|
||||
{ s3_virge_357_diamond_available },
|
||||
s3_virge_speed_changed,
|
||||
s3_virge_force_redraw,
|
||||
s3_virge_357_config
|
||||
const device_t s3_diamond_stealth_4000_agp_device = {
|
||||
.name = "S3 ViRGE/GX2 (Diamond Stealth 3D 4000) AGP",
|
||||
.internal_name = "stealth3d_4000_agp",
|
||||
.flags = DEVICE_AGP,
|
||||
.local = S3_DIAMOND_STEALTH3D_4000,
|
||||
.init = s3_virge_init,
|
||||
.close = s3_virge_close,
|
||||
.reset = s3_virge_reset,
|
||||
{ .available = s3_virge_357_diamond_available },
|
||||
.speed_changed = s3_virge_speed_changed,
|
||||
.force_redraw = s3_virge_force_redraw,
|
||||
.config = s3_virge_357_config
|
||||
};
|
||||
|
||||
const device_t s3_diamond_stealth_4000_agp_device =
|
||||
{
|
||||
"S3 ViRGE/GX2 (Diamond Stealth 3D 4000) AGP",
|
||||
"stealth3d_4000_agp",
|
||||
DEVICE_AGP,
|
||||
S3_DIAMOND_STEALTH3D_4000,
|
||||
s3_virge_init,
|
||||
s3_virge_close,
|
||||
s3_virge_reset,
|
||||
{ s3_virge_357_diamond_available },
|
||||
s3_virge_speed_changed,
|
||||
s3_virge_force_redraw,
|
||||
s3_virge_357_config
|
||||
const device_t s3_trio3d2x_pci_device = {
|
||||
.name = "S3 Trio3D/2X (362) PCI",
|
||||
.internal_name = "trio3d2x",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = S3_TRIO_3D2X,
|
||||
.init = s3_virge_init,
|
||||
.close = s3_virge_close,
|
||||
.reset = s3_virge_reset,
|
||||
{ .available = s3_trio3d2x_available },
|
||||
.speed_changed = s3_virge_speed_changed,
|
||||
.force_redraw = s3_virge_force_redraw,
|
||||
.config = s3_trio3d2x_config
|
||||
};
|
||||
|
||||
const device_t s3_trio3d2x_pci_device =
|
||||
{
|
||||
"S3 Trio3D/2X (362) PCI",
|
||||
"trio3d2x",
|
||||
DEVICE_PCI,
|
||||
S3_TRIO_3D2X,
|
||||
s3_virge_init,
|
||||
s3_virge_close,
|
||||
s3_virge_reset,
|
||||
{ s3_trio3d2x_available },
|
||||
s3_virge_speed_changed,
|
||||
s3_virge_force_redraw,
|
||||
s3_trio3d2x_config
|
||||
};
|
||||
|
||||
const device_t s3_trio3d2x_agp_device =
|
||||
{
|
||||
"S3 Trio3D/2X (362) AGP",
|
||||
"trio3d2x_agp",
|
||||
DEVICE_AGP,
|
||||
S3_TRIO_3D2X,
|
||||
s3_virge_init,
|
||||
s3_virge_close,
|
||||
s3_virge_reset,
|
||||
{ s3_trio3d2x_available },
|
||||
s3_virge_speed_changed,
|
||||
s3_virge_force_redraw,
|
||||
s3_trio3d2x_config
|
||||
const device_t s3_trio3d2x_agp_device = {
|
||||
.name = "S3 Trio3D/2X (362) AGP",
|
||||
.internal_name = "trio3d2x_agp",
|
||||
.flags = DEVICE_AGP,
|
||||
.local = S3_TRIO_3D2X,
|
||||
.init = s3_virge_init,
|
||||
.close = s3_virge_close,
|
||||
.reset = s3_virge_reset,
|
||||
{ .available = s3_trio3d2x_available },
|
||||
.speed_changed = s3_virge_speed_changed,
|
||||
.force_redraw = s3_virge_force_redraw,
|
||||
.config = s3_trio3d2x_config
|
||||
};
|
||||
|
||||
@@ -152,38 +152,58 @@ sc1148x_ramdac_close(void *priv)
|
||||
free(ramdac);
|
||||
}
|
||||
|
||||
const device_t sc11483_ramdac_device =
|
||||
{
|
||||
"Sierra SC11483 RAMDAC",
|
||||
"sc11483_ramdac",
|
||||
0, 0,
|
||||
sc1148x_ramdac_init, sc1148x_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t sc11483_ramdac_device = {
|
||||
.name = "Sierra SC11483 RAMDAC",
|
||||
.internal_name = "sc11483_ramdac",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = sc1148x_ramdac_init,
|
||||
.close = sc1148x_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t sc11487_ramdac_device =
|
||||
{
|
||||
"Sierra SC11487 RAMDAC",
|
||||
"sc11487_ramdac",
|
||||
0, 1,
|
||||
sc1148x_ramdac_init, sc1148x_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t sc11487_ramdac_device = {
|
||||
.name = "Sierra SC11487 RAMDAC",
|
||||
.internal_name = "sc11487_ramdac",
|
||||
.flags = 0,
|
||||
.local = 1,
|
||||
.init = sc1148x_ramdac_init,
|
||||
.close = sc1148x_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t sc11484_nors2_ramdac_device =
|
||||
{
|
||||
"Sierra SC11484 RAMDAC (no RS2 signal)",
|
||||
"sc11484_nors2_ramdac",
|
||||
0, 2,
|
||||
sc1148x_ramdac_init, sc1148x_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t sc11484_nors2_ramdac_device = {
|
||||
.name = "Sierra SC11484 RAMDAC (no RS2 signal)",
|
||||
.internal_name = "sc11484_nors2_ramdac",
|
||||
.flags = 0,
|
||||
.local = 2,
|
||||
.init = sc1148x_ramdac_init,
|
||||
.close = sc1148x_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t sc11486_ramdac_device =
|
||||
{
|
||||
"Sierra SC11486 RAMDAC",
|
||||
"sc11486_ramdac",
|
||||
0, 3,
|
||||
sc1148x_ramdac_init, sc1148x_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t sc11486_ramdac_device = {
|
||||
.name = "Sierra SC11486 RAMDAC",
|
||||
.internal_name = "sc11486_ramdac",
|
||||
.flags = 0,
|
||||
.local = 3,
|
||||
.init = sc1148x_ramdac_init,
|
||||
.close = sc1148x_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -153,12 +153,16 @@ sc1502x_ramdac_close(void *priv)
|
||||
free(ramdac);
|
||||
}
|
||||
|
||||
|
||||
const device_t sc1502x_ramdac_device =
|
||||
{
|
||||
"Sierra SC1502x RAMDAC",
|
||||
"sc1502x_ramdac",
|
||||
0, 0,
|
||||
sc1502x_ramdac_init, sc1502x_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t sc1502x_ramdac_device = {
|
||||
.name = "Sierra SC1502x RAMDAC",
|
||||
.internal_name = "sc1502x_ramdac",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = sc1502x_ramdac_init,
|
||||
.close = sc1502x_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -303,39 +303,58 @@ sdac_ramdac_close(void *priv)
|
||||
free(ramdac);
|
||||
}
|
||||
|
||||
|
||||
const device_t gendac_ramdac_device =
|
||||
{
|
||||
"S3 GENDAC 86c708 RAMDAC",
|
||||
"gendac_ramdac",
|
||||
0, S3_86C708,
|
||||
sdac_ramdac_init, sdac_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t gendac_ramdac_device = {
|
||||
.name = "S3 GENDAC 86c708 RAMDAC",
|
||||
.internal_name = "gendac_ramdac",
|
||||
.flags = 0,
|
||||
.local = S3_86C708,
|
||||
.init = sdac_ramdac_init,
|
||||
.close = sdac_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t tseng_ics5301_ramdac_device =
|
||||
{
|
||||
"Tseng ICS5301 GENDAC RAMDAC",
|
||||
"tseng_ics5301_ramdac",
|
||||
0, ICS_5301,
|
||||
sdac_ramdac_init, sdac_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t tseng_ics5301_ramdac_device = {
|
||||
.name = "Tseng ICS5301 GENDAC RAMDAC",
|
||||
.internal_name = "tseng_ics5301_ramdac",
|
||||
.flags = 0,
|
||||
.local = ICS_5301,
|
||||
.init = sdac_ramdac_init,
|
||||
.close = sdac_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t tseng_ics5341_ramdac_device =
|
||||
{
|
||||
"Tseng ICS5341 GENDAC RAMDAC",
|
||||
"tseng_ics5341_ramdac",
|
||||
0, ICS_5341,
|
||||
sdac_ramdac_init, sdac_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t tseng_ics5341_ramdac_device = {
|
||||
.name = "Tseng ICS5341 GENDAC RAMDAC",
|
||||
.internal_name = "tseng_ics5341_ramdac",
|
||||
.flags = 0,
|
||||
.local = ICS_5341,
|
||||
.init = sdac_ramdac_init,
|
||||
.close = sdac_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t sdac_ramdac_device =
|
||||
{
|
||||
"S3 SDAC 86c716 RAMDAC",
|
||||
"sdac_ramdac",
|
||||
0, S3_86C716,
|
||||
sdac_ramdac_init, sdac_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t sdac_ramdac_device = {
|
||||
.name = "S3 SDAC 86c716 RAMDAC",
|
||||
.internal_name = "sdac_ramdac",
|
||||
.flags = 0,
|
||||
.local = S3_86C716,
|
||||
.init = sdac_ramdac_init,
|
||||
.close = sdac_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -916,16 +916,16 @@ device_config_t sigma_config[] = {
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
const device_t sigma_device =
|
||||
{
|
||||
"Sigma Color 400",
|
||||
"sigma400",
|
||||
DEVICE_ISA, 0,
|
||||
sigma_init,
|
||||
sigma_close,
|
||||
NULL,
|
||||
{ sigma_available },
|
||||
sigma_speed_changed,
|
||||
NULL,
|
||||
sigma_config
|
||||
const device_t sigma_device = {
|
||||
.name = "Sigma Color 400",
|
||||
.internal_name = "sigma400",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = sigma_init,
|
||||
.close = sigma_close,
|
||||
.reset = NULL,
|
||||
{ .available = sigma_available },
|
||||
.speed_changed = sigma_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = sigma_config
|
||||
};
|
||||
|
||||
@@ -246,12 +246,16 @@ stg_ramdac_close(void *priv)
|
||||
free(ramdac);
|
||||
}
|
||||
|
||||
|
||||
const device_t stg_ramdac_device =
|
||||
{
|
||||
"SGS-Thompson STG170x RAMDAC",
|
||||
"stg_ramdac",
|
||||
0, 0,
|
||||
stg_ramdac_init, stg_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t stg_ramdac_device = {
|
||||
.name = "SGS-Thompson STG170x RAMDAC",
|
||||
.internal_name = "stg_ramdac",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = stg_ramdac_init,
|
||||
.close = stg_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -3227,92 +3227,86 @@ static const device_config_t tgui96xx_config[] = {
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
const device_t tgui9400cxi_device =
|
||||
{
|
||||
"Trident TGUI 9400CXi",
|
||||
"tgui9400cxi_vlb",
|
||||
DEVICE_VLB,
|
||||
TGUI_9400CXI,
|
||||
tgui_init,
|
||||
tgui_close,
|
||||
NULL,
|
||||
{ tgui9400cxi_available },
|
||||
tgui_speed_changed,
|
||||
tgui_force_redraw,
|
||||
tgui9440_config
|
||||
const device_t tgui9400cxi_device = {
|
||||
.name = "Trident TGUI 9400CXi",
|
||||
.internal_name = "tgui9400cxi_vlb",
|
||||
.flags = DEVICE_VLB,
|
||||
.local = TGUI_9400CXI,
|
||||
.init = tgui_init,
|
||||
.close = tgui_close,
|
||||
.reset = NULL,
|
||||
{ .available = tgui9400cxi_available },
|
||||
.speed_changed = tgui_speed_changed,
|
||||
.force_redraw = tgui_force_redraw,
|
||||
.config = tgui9440_config
|
||||
};
|
||||
|
||||
const device_t tgui9440_vlb_device =
|
||||
{
|
||||
"Trident TGUI 9440AGi VLB",
|
||||
"tgui9440_vlb",
|
||||
DEVICE_VLB,
|
||||
TGUI_9440,
|
||||
tgui_init,
|
||||
tgui_close,
|
||||
NULL,
|
||||
{ tgui9440_available },
|
||||
tgui_speed_changed,
|
||||
tgui_force_redraw,
|
||||
tgui9440_config
|
||||
const device_t tgui9440_vlb_device = {
|
||||
.name = "Trident TGUI 9440AGi VLB",
|
||||
.internal_name = "tgui9440_vlb",
|
||||
.flags = DEVICE_VLB,
|
||||
.local = TGUI_9440,
|
||||
.init = tgui_init,
|
||||
.close = tgui_close,
|
||||
.reset = NULL,
|
||||
{ .available = tgui9440_available },
|
||||
.speed_changed = tgui_speed_changed,
|
||||
.force_redraw = tgui_force_redraw,
|
||||
.config = tgui9440_config
|
||||
};
|
||||
|
||||
const device_t tgui9440_pci_device =
|
||||
{
|
||||
"Trident TGUI 9440AGi PCI",
|
||||
"tgui9440_pci",
|
||||
DEVICE_PCI,
|
||||
TGUI_9440,
|
||||
tgui_init,
|
||||
tgui_close,
|
||||
NULL,
|
||||
{ tgui9440_available },
|
||||
tgui_speed_changed,
|
||||
tgui_force_redraw,
|
||||
tgui9440_config
|
||||
const device_t tgui9440_pci_device = {
|
||||
.name = "Trident TGUI 9440AGi PCI",
|
||||
.internal_name = "tgui9440_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = TGUI_9440,
|
||||
.init = tgui_init,
|
||||
.close = tgui_close,
|
||||
.reset = NULL,
|
||||
{ .available = tgui9440_available },
|
||||
.speed_changed = tgui_speed_changed,
|
||||
.force_redraw = tgui_force_redraw,
|
||||
.config = tgui9440_config
|
||||
};
|
||||
|
||||
const device_t tgui9440_onboard_pci_device =
|
||||
{
|
||||
"Trident TGUI 9440AGi On-Board PCI",
|
||||
"tgui9440_onboard_pci",
|
||||
DEVICE_PCI,
|
||||
TGUI_9440 | ONBOARD,
|
||||
tgui_init,
|
||||
tgui_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
tgui_speed_changed,
|
||||
tgui_force_redraw,
|
||||
tgui9440_config
|
||||
const device_t tgui9440_onboard_pci_device = {
|
||||
.name = "Trident TGUI 9440AGi On-Board PCI",
|
||||
.internal_name = "tgui9440_onboard_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = TGUI_9440 | ONBOARD,
|
||||
.init = tgui_init,
|
||||
.close = tgui_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = tgui_speed_changed,
|
||||
.force_redraw = tgui_force_redraw,
|
||||
.config = tgui9440_config
|
||||
};
|
||||
|
||||
const device_t tgui9660_pci_device =
|
||||
{
|
||||
"Trident TGUI 9660XGi PCI",
|
||||
"tgui9660_pci",
|
||||
DEVICE_PCI,
|
||||
TGUI_9660,
|
||||
tgui_init,
|
||||
tgui_close,
|
||||
NULL,
|
||||
{ tgui96xx_available },
|
||||
tgui_speed_changed,
|
||||
tgui_force_redraw,
|
||||
tgui96xx_config
|
||||
const device_t tgui9660_pci_device = {
|
||||
.name = "Trident TGUI 9660XGi PCI",
|
||||
.internal_name = "tgui9660_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = TGUI_9660,
|
||||
.init = tgui_init,
|
||||
.close = tgui_close,
|
||||
.reset = NULL,
|
||||
{ .available = tgui96xx_available },
|
||||
.speed_changed = tgui_speed_changed,
|
||||
.force_redraw = tgui_force_redraw,
|
||||
.config = tgui96xx_config
|
||||
};
|
||||
|
||||
const device_t tgui9680_pci_device =
|
||||
{
|
||||
"Trident TGUI 9680XGi PCI",
|
||||
"tgui9680_pci",
|
||||
DEVICE_PCI,
|
||||
TGUI_9680,
|
||||
tgui_init,
|
||||
tgui_close,
|
||||
NULL,
|
||||
{ tgui96xx_available },
|
||||
tgui_speed_changed,
|
||||
tgui_force_redraw,
|
||||
tgui96xx_config
|
||||
const device_t tgui9680_pci_device = {
|
||||
.name = "Trident TGUI 9680XGi PCI",
|
||||
.internal_name = "tgui9680_pci",
|
||||
.flags = DEVICE_PCI,
|
||||
.local = TGUI_9680,
|
||||
.init = tgui_init,
|
||||
.close = tgui_close,
|
||||
.reset = NULL,
|
||||
{ .available = tgui96xx_available },
|
||||
.speed_changed = tgui_speed_changed,
|
||||
.force_redraw = tgui_force_redraw,
|
||||
.config = tgui96xx_config
|
||||
};
|
||||
|
||||
@@ -262,15 +262,16 @@ vid_init(const device_t *info)
|
||||
return(ti);
|
||||
}
|
||||
|
||||
|
||||
const device_t ibm_ps1_2121_device = {
|
||||
"IBM PS/1 Model 2121 SVGA",
|
||||
"ibm_ps1_2121",
|
||||
DEVICE_ISA,
|
||||
512,
|
||||
vid_init, vid_close, NULL,
|
||||
{ NULL },
|
||||
vid_speed_changed,
|
||||
vid_force_redraw,
|
||||
NULL
|
||||
.name = "IBM PS/1 Model 2121 SVGA",
|
||||
.internal_name = "ibm_ps1_2121",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 512,
|
||||
.init = vid_init,
|
||||
.close = vid_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = vid_speed_changed,
|
||||
.force_redraw = vid_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -117,12 +117,16 @@ tkd8001_ramdac_close(void *priv)
|
||||
free(ramdac);
|
||||
}
|
||||
|
||||
|
||||
const device_t tkd8001_ramdac_device =
|
||||
{
|
||||
"Trident TKD8001 RAMDAC",
|
||||
"tkd8001_ramdac",
|
||||
0, 0,
|
||||
tkd8001_ramdac_init, tkd8001_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t tkd8001_ramdac_device = {
|
||||
.name = "Trident TKD8001 RAMDAC",
|
||||
.internal_name = "tkd8001_ramdac",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = tkd8001_ramdac_init,
|
||||
.close = tkd8001_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -443,15 +443,14 @@ void tvga_force_redraw(void *p)
|
||||
tvga->svga.fullchange = changeframecount;
|
||||
}
|
||||
|
||||
static const device_config_t tvga_config[] =
|
||||
{
|
||||
static const device_config_t tvga_config[] = {
|
||||
// clang-format off
|
||||
{
|
||||
"memory", "Memory size", CONFIG_SELECTION, "", 1024, "", { 0 },
|
||||
{
|
||||
{ "256 kB", 256 },
|
||||
{ "512 kB", 512 },
|
||||
{ "1 MB", 1024 },
|
||||
{ "256 kB", 256 },
|
||||
{ "512 kB", 512 },
|
||||
{ "1 MB", 1024 },
|
||||
/*Chip supports 2mb, but drivers are buggy*/
|
||||
{ "" }
|
||||
}
|
||||
@@ -460,47 +459,44 @@ static const device_config_t tvga_config[] =
|
||||
// clang-format off
|
||||
};
|
||||
|
||||
const device_t tvga8900b_device =
|
||||
{
|
||||
"Trident TVGA 8900B",
|
||||
"tvga8900b",
|
||||
DEVICE_ISA,
|
||||
TVGA8900B_ID,
|
||||
tvga_init,
|
||||
tvga_close,
|
||||
NULL,
|
||||
{ tvga8900b_available },
|
||||
tvga_speed_changed,
|
||||
tvga_force_redraw,
|
||||
tvga_config
|
||||
const device_t tvga8900b_device = {
|
||||
.name = "Trident TVGA 8900B",
|
||||
.internal_name = "tvga8900b",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = TVGA8900B_ID,
|
||||
.init = tvga_init,
|
||||
.close = tvga_close,
|
||||
.reset = NULL,
|
||||
{ .available = tvga8900b_available },
|
||||
.speed_changed = tvga_speed_changed,
|
||||
.force_redraw = tvga_force_redraw,
|
||||
.config = tvga_config
|
||||
};
|
||||
|
||||
const device_t tvga8900d_device =
|
||||
{
|
||||
"Trident TVGA 8900D",
|
||||
"tvga8900d",
|
||||
DEVICE_ISA,
|
||||
TVGA8900CLD_ID,
|
||||
tvga_init,
|
||||
tvga_close,
|
||||
NULL,
|
||||
{ tvga8900d_available },
|
||||
tvga_speed_changed,
|
||||
tvga_force_redraw,
|
||||
tvga_config
|
||||
const device_t tvga8900d_device = {
|
||||
.name = "Trident TVGA 8900D",
|
||||
.internal_name = "tvga8900d",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = TVGA8900CLD_ID,
|
||||
.init = tvga_init,
|
||||
.close = tvga_close,
|
||||
.reset = NULL,
|
||||
{ .available = tvga8900d_available },
|
||||
.speed_changed = tvga_speed_changed,
|
||||
.force_redraw = tvga_force_redraw,
|
||||
.config = tvga_config
|
||||
};
|
||||
|
||||
const device_t tvga9000b_device =
|
||||
{
|
||||
"Trident TVGA 9000B",
|
||||
"tvga9000b",
|
||||
DEVICE_ISA,
|
||||
TVGA9000B_ID,
|
||||
tvga_init,
|
||||
tvga_close,
|
||||
NULL,
|
||||
{ tvga9000b_available },
|
||||
tvga_speed_changed,
|
||||
tvga_force_redraw,
|
||||
NULL
|
||||
const device_t tvga9000b_device = {
|
||||
.name = "Trident TVGA 9000B",
|
||||
.internal_name = "tvga9000b",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = TVGA9000B_ID,
|
||||
.init = tvga_init,
|
||||
.close = tvga_close,
|
||||
.reset = NULL,
|
||||
{ .available = tvga9000b_available },
|
||||
.speed_changed = tvga_speed_changed,
|
||||
.force_redraw = tvga_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -590,12 +590,16 @@ tvp3026_ramdac_close(void *priv)
|
||||
free(ramdac);
|
||||
}
|
||||
|
||||
|
||||
const device_t tvp3026_ramdac_device =
|
||||
{
|
||||
"TI TVP3026 RAMDAC",
|
||||
"tvp3026_ramdac",
|
||||
0, 0,
|
||||
tvp3026_ramdac_init, tvp3026_ramdac_close,
|
||||
NULL, { NULL }, NULL, NULL
|
||||
const device_t tvp3026_ramdac_device = {
|
||||
.name = "TI TVP3026 RAMDAC",
|
||||
.internal_name = "tvp3026_ramdac",
|
||||
.flags = 0,
|
||||
.local = 0,
|
||||
.init = tvp3026_ramdac_init,
|
||||
.close = tvp3026_ramdac_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -181,47 +181,44 @@ void vga_force_redraw(void *p)
|
||||
vga->svga.fullchange = changeframecount;
|
||||
}
|
||||
|
||||
const device_t vga_device =
|
||||
{
|
||||
"VGA",
|
||||
"vga",
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
vga_init,
|
||||
vga_close,
|
||||
NULL,
|
||||
{ vga_available },
|
||||
vga_speed_changed,
|
||||
vga_force_redraw,
|
||||
NULL
|
||||
const device_t vga_device = {
|
||||
.name = "VGA",
|
||||
.internal_name = "vga",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = vga_init,
|
||||
.close = vga_close,
|
||||
.reset = NULL,
|
||||
{ .available = vga_available },
|
||||
.speed_changed = vga_speed_changed,
|
||||
.force_redraw = vga_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ps1vga_device =
|
||||
{
|
||||
"PS/1 VGA",
|
||||
"ps1vga",
|
||||
DEVICE_ISA,
|
||||
0,
|
||||
ps1vga_init,
|
||||
vga_close,
|
||||
NULL,
|
||||
{ vga_available },
|
||||
vga_speed_changed,
|
||||
vga_force_redraw,
|
||||
NULL
|
||||
const device_t ps1vga_device = {
|
||||
.name = "PS/1 VGA",
|
||||
.internal_name = "ps1vga",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = ps1vga_init,
|
||||
.close = vga_close,
|
||||
.reset = NULL,
|
||||
{ .available = vga_available },
|
||||
.speed_changed = vga_speed_changed,
|
||||
.force_redraw = vga_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
const device_t ps1vga_mca_device =
|
||||
{
|
||||
"PS/1 VGA",
|
||||
"ps1vga_mca",
|
||||
DEVICE_MCA,
|
||||
0,
|
||||
ps1vga_init,
|
||||
vga_close,
|
||||
NULL,
|
||||
{ vga_available },
|
||||
vga_speed_changed,
|
||||
vga_force_redraw,
|
||||
NULL
|
||||
const device_t ps1vga_mca_device = {
|
||||
.name = "PS/1 VGA",
|
||||
.internal_name = "ps1vga_mca",
|
||||
.flags = DEVICE_MCA,
|
||||
.local = 0,
|
||||
.init = ps1vga_init,
|
||||
.close = vga_close,
|
||||
.reset = NULL,
|
||||
{ .available = vga_available },
|
||||
.speed_changed = vga_speed_changed,
|
||||
.force_redraw = vga_force_redraw,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -1007,16 +1007,16 @@ void wy700_speed_changed(void *p)
|
||||
wy700_recalctimings(wy700);
|
||||
}
|
||||
|
||||
const device_t wy700_device =
|
||||
{
|
||||
"Wyse 700",
|
||||
"wy700",
|
||||
DEVICE_ISA, 0,
|
||||
wy700_init,
|
||||
wy700_close,
|
||||
NULL,
|
||||
{ NULL },
|
||||
wy700_speed_changed,
|
||||
NULL,
|
||||
NULL
|
||||
const device_t wy700_device = {
|
||||
.name = "Wyse 700",
|
||||
.internal_name = "wy700",
|
||||
.flags = DEVICE_ISA,
|
||||
.local = 0,
|
||||
.init = wy700_init,
|
||||
.close = wy700_close,
|
||||
.reset = NULL,
|
||||
{ .available = NULL },
|
||||
.speed_changed = wy700_speed_changed,
|
||||
.force_redraw = NULL,
|
||||
.config = NULL
|
||||
};
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "86box",
|
||||
"version-string": "3.1",
|
||||
"version-string": "3.3",
|
||||
"homepage": "https://86box.net/",
|
||||
"documentation": "http://86box.readthedocs.io/",
|
||||
"license": "GPL-2.0-or-later",
|
||||
|
||||