Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run tests in qemu in GitHub action #79

Draft
wants to merge 56 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
0f849f1
ci: Use pre-built DJGPP image in GitHub Actions Workflows, so DJGPP d…
volkertb Dec 19, 2023
7bbae20
ci: Update temporarily allowlisted branch, to test the build-and-rele…
volkertb Dec 19, 2023
301d8e4
ci: Update .github/workflows/02-pr-checks.yml
volkertb Dec 20, 2023
7700fae
ci: Update .github/workflows/01-build-and-release.yml
volkertb Dec 20, 2023
d4eea95
ci: Update workflows to work with `debian-djgpp` container image
volkertb Dec 20, 2023
5a786c1
ci: Move shellcheck of artifacts build script to separate `lint` job …
volkertb Dec 20, 2023
3b06b6d
test: Add initial KVM test in GitHub Actions Workflow
volkertb Jan 20, 2024
9db52b4
test: Try KVM test assuming root already, `sudo` isn't even present i…
volkertb Jan 20, 2024
7da81ec
ci: Temporarily disable container, run under `ubuntu-latest` in GitHu…
volkertb Jan 20, 2024
9b14604
ci: Use Docker image again in GitHub Actions Workflow, and provide ac…
volkertb Jan 20, 2024
743931d
ci: At least one mandatory step required in job, so let's just add one
volkertb Jan 20, 2024
5a79db8
ci: Run container based on Docker image with default entrypoint as a …
volkertb Jan 20, 2024
547403a
test: Trying something that should deliberately fail, to troubleshoot…
volkertb Jan 20, 2024
1405361
ci: Try passing on Docker options in another way (although this way, …
volkertb Jan 20, 2024
ea902c8
ci: In the step, run the same QEMU launch script that the default ent…
volkertb Jan 20, 2024
6353642
test: Try running SBEMU in a DOS VM under KVM-accelerated QEMU in Git…
volkertb Jan 20, 2024
179d604
ci: Check out repository before running shellcheck on build script, m…
volkertb Jan 20, 2024
b90a5a6
test: Download and HDPMI32i as part of test, since SBEMU won't run wi…
volkertb Jan 20, 2024
e7dd2b5
test: Add AIL/32 files from http://www.thegleam.com/ke5fx/misc/AIL2.Z…
volkertb Jan 20, 2024
5b647fd
test: Copy test dependencies along with built EXE as test artifacts, …
volkertb Jan 20, 2024
863cf9b
test: Debug why downoaded test dependencies are not where they are ex…
volkertb Jan 20, 2024
56ab093
ci: Apparently, actions/upload-artifact@v4 and actions/download-artif…
volkertb Jan 20, 2024
d0c2e26
fix: Replace forward slash with backslash in DOS path :)
volkertb Jan 20, 2024
2703fc2
test: In CICD_DOS.BAT, rename dos32a.exe to dos4gw.exe before running…
volkertb Jan 20, 2024
532e6f5
ci: Update to newer version of `cicd-qemu-dos-docker` image, to fix `…
volkertb Jan 21, 2024
1612432
test: Replace default QEMU launch script of `cicd-qemu-dos-docker` im…
volkertb Jan 21, 2024
ca8d087
test: Disable any network adapters in QEMU to prevent iPXE boot delay…
volkertb Jan 21, 2024
9a4123a
test: Show BLASTER environment variable (after having loaded SBEMU.EX…
volkertb Jan 21, 2024
0c4fc59
test: Override BLASTER setting to troubleshoot Sound Blaster Pro dete…
volkertb Jan 21, 2024
33f7ec8
test: Remove temporary BLASTER environment variable override, since t…
volkertb Jan 21, 2024
ba3f9da
test: Try the AIL/32 regular Sound Blster drivers instead of the AIL/…
volkertb Jan 21, 2024
451c06b
test: Emulate older intel-hda (ich6) variant instead of ich9-intel-hd…
volkertb Jan 21, 2024
ba4a911
test: Try emulating ICHx AC'97 instead of Intel HDA, to see if that m…
volkertb Jan 21, 2024
39d0e9f
ci: Use newer version of debian-djgpp container image, which has `wge…
volkertb Jan 21, 2024
b18882d
ci: Run only the `Build project` (compile) step in a `debian-djgpp` c…
volkertb Jan 21, 2024
9aa3703
test: try capturing exit code of test command (`stp32 dtmf_src.wav a3…
volkertb Aug 18, 2024
ca3c0be
ci: Propagate errorlevel/exitcode from test in DOS VM to step script
volkertb Aug 18, 2024
5384490
test: Load Jemm with QPIEMU module to allow SBEMU to be tested in Rea…
volkertb Aug 18, 2024
726fbd2
ci: Resolve Node.js deprecation warning by using v4 of the Checkout G…
volkertb Aug 18, 2024
0e0000c
ci: try Intel HD Audio (HDA) instead of AC'97/ICHx, since the latter …
volkertb Aug 18, 2024
4abdad9
test: Add workarounds for possible issue with DOS/32A DOS extender, s…
volkertb Aug 18, 2024
92bd299
Revert "test: Add workarounds for possible issue with DOS/32A DOS ext…
volkertb Aug 18, 2024
f074ba2
test: Try original DOS/4GW DOS extender version 1.97 instead of DOS/32A
volkertb Aug 18, 2024
64d0274
test: decode DTMF tones from audio output stream file from test in QE…
volkertb Aug 18, 2024
b273180
test: Download dtmf2num source and compile and install it before usin…
volkertb Aug 18, 2024
618b05a
test: Try decoding both the source WAV file and the output dump WAV f…
volkertb Aug 19, 2024
b46cca4
Revert "ci: try Intel HD Audio (HDA) instead of AC'97/ICHx, since the…
volkertb Aug 19, 2024
6b70a0b
test: fix audio output dump file name, after the revert from HD Audio…
volkertb Aug 19, 2024
f805995
ci: upload WAV output dumps from emulated QEMU sound devices as artif…
volkertb Aug 19, 2024
1420eb9
test: Add VOCPLAY.EXE and Sound Blaster AILv2 Real Mode driver to tes…
volkertb Aug 19, 2024
50fbb51
ci: restore DOS test error code propagation after having successfully…
volkertb Aug 19, 2024
b4d6c42
ci: fix DOS error code propagation bug by exporting environment varia…
volkertb Aug 19, 2024
e278310
ci: fix DOS error code propagation bug by escaping brackets, since th…
volkertb Aug 19, 2024
8fc2828
ci: debug command parsing error by adding `history` command to see ho…
volkertb Aug 19, 2024
b22309d
ci: try double quotes for the operands in the `if` statements, as sug…
volkertb Aug 19, 2024
d40a958
ci: Clean up script after previous commit finally fixed the DOS error…
volkertb Aug 19, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 7 additions & 14 deletions .github/workflows/01-build-and-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ name: build-and-release

on:
push:
# TODO: remove branches block below after testing
branches:
- use-preinstalled-djgpp-image-in-workflows
- run-tests-in-qemu-in-github-action
tags:
- '**'

Expand All @@ -18,13 +22,6 @@ jobs:
path: src
# We need this in order to generate a changelog from the commits between the latest and previous tags
fetch-depth: 0

- name: Install DJGPP
run: |
wget -P /tmp https://github.com/andrewwutw/build-djgpp/releases/download/v3.4/djgpp-linux64-gcc1220.tar.bz2
echo "8464f17017d6ab1b2bb2df4ed82357b5bf692e6e2b7fee37e315638f3d505f00 /tmp/djgpp-linux64-gcc1220.tar.bz2" | shasum -a 256 --check
tar -xf /tmp/djgpp-linux64-gcc1220.tar.bz2 -C /opt
rm /tmp/djgpp-linux64-gcc1220.tar.bz2
- name: "✏️ Generate release changelog"
id: changelog
uses: requarks/changelog-action@v1
Expand All @@ -34,18 +31,14 @@ jobs:
includeInvalidCommits: true
excludeTypes: ""
- name: Build project
run: |
cd $GITHUB_WORKSPACE/src
test -f main.c
. /opt/djgpp/setenv
make
test -f output/sbemu.exe
uses: docker://ghcr.io/volkertb/debian-djgpp:v0.2
with:
entrypoint: src/scripts/build-in-container.sh
- name: Combine changelog and user instructions into release notes
run: |
cat $GITHUB_WORKSPACE/CHANGELOG.md $GITHUB_WORKSPACE/src/user_instructions.md > $GITHUB_WORKSPACE/RELEASE_NOTES.md
- name: Build FreeDOS SBEMU USB image and ZIP file
run: |
shellcheck $GITHUB_WORKSPACE/src/scripts/build-release-artifacts.sh
$GITHUB_WORKSPACE/src/scripts/build-release-artifacts.sh $GITHUB_WORKSPACE/src/output/sbemu.exe $GITHUB_WORKSPACE/RELEASE_NOTES.md $GITHUB_WORKSPACE/
- name: Generate release tag
id: tag
Expand Down
95 changes: 85 additions & 10 deletions .github/workflows/02-pr-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,96 @@ on:
branches:
- main
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: shellcheck shell scripts
run: |
shellcheck scripts/build-in-container.sh
shellcheck scripts/build-release-artifacts.sh
shellcheck test/run_cicd_dos.sh
build:
runs-on: ubuntu-latest
container:
image: ghcr.io/volkertb/debian-djgpp:v0.2
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Enforce Conventional Commits
uses: webiny/[email protected]
- name: Install DJGPP
run: |
wget -P /tmp https://github.com/andrewwutw/build-djgpp/releases/download/v3.4/djgpp-linux64-gcc1220.tar.bz2
echo "8464f17017d6ab1b2bb2df4ed82357b5bf692e6e2b7fee37e315638f3d505f00 /tmp/djgpp-linux64-gcc1220.tar.bz2" | shasum -a 256 --check
tar -xf /tmp/djgpp-linux64-gcc1220.tar.bz2 -C /opt
rm /tmp/djgpp-linux64-gcc1220.tar.bz2
- name: Build project
run: |
. /opt/djgpp/setenv
make
i586-pc-msdosdjgpp-objdump -x output/sbemu.exe
make CC=gcc CXX=g++
objdump -x output/sbemu.exe
- name: 'Upload test files'
uses: actions/upload-artifact@v4
with:
name: sbemu-test-files
path: |
output/sbemu.exe
test/*
retention-days: 1
test:
needs: build
runs-on: ubuntu-latest
container:
image: ghcr.io/volkertb/cicd-qemu-dos-docker:v1.8
options: --device=/dev/kvm --cpus 1
steps:
- name: 'Download test files'
uses: actions/download-artifact@v4
with:
name: sbemu-test-files
- name: 'Download dependencies'
run: |
# HDPMI32i is needed for emulation to work with Protected Mode games
wget https://github.com/crazii/HX/releases/download/v0.1-beta3/HDPMI32i.zip
echo "4b7fc576d6c5dfd3fe7290fd1d0c0229118d01a55c8325d487452c2d6e0c3bbd HDPMI32i.zip" | sha256sum -c
unzip HDPMI32i.zip
# Jemm is needed for emulation to work with Real Mode games
wget https://github.com/Baron-von-Riedesel/Jemm/releases/download/v5.85pre1/JemmB_v585.zip
echo "8edc9653e58ae172584f5065b0d6111f1df75998008e46170d2767bfda8236b3 JemmB_v585.zip" | sha256sum -c
unzip JemmB_v585.zip
- name: Test executable
run: |
ls -lh /dev/kvm
ls -lh .
touch CICD_DOS.BAT
echo "JEMM386.EXE LOAD" >> CICD_DOS.BAT
echo "JLOAD QPIEMU.DLL" >> CICD_DOS.BAT
echo "HDPMI32i.EXE" >> CICD_DOS.BAT
echo "output\\sbemu" >> CICD_DOS.BAT
echo "cd test" >> CICD_DOS.BAT
#echo "ren dos32a.exe dos4gw.exe" >> CICD_DOS.BAT
echo "ECHO Current BLASTER variable: %BLASTER%" >> CICD_DOS.BAT
#echo "stp32 dtmf_src.wav a32sbdg.dll" >> CICD_DOS.BAT
echo "vocplay dtmf_src.voc sbdig.adv" >> CICD_DOS.BAT
echo "ECHO %ERRORLEVEL% > exitcode.txt" >> CICD_DOS.BAT
echo "ECHO Result exit code of test command:" >> CICD_DOS.BAT
echo "type exitcode.txt" >> CICD_DOS.BAT
cp -f test/run_cicd_dos.sh /usr/local/bin/
chmod +x /usr/local/bin/run_cicd_dos.sh
/usr/local/bin/run_cicd_dos.sh
# Propagate error code from DOS test or exit with error code 254 if the exit code file is missing
dos_exit_code=$(cat test/exitcode.txt || echo 254)
if [ "$dos_exit_code" -ne "0" ]; then exit $dos_exit_code; fi
wget -P /tmp https://aluigi.altervista.org/mytoolz/dtmf2num.zip
echo "187d43e4d57535da3386eee3accdbcd09526378e3258db7f1bd5afccd0c64360 /tmp/dtmf2num.zip" | sha256sum -c
mkdir /tmp/dtmf2num
unzip /tmp/dtmf2num.zip -d /tmp/dtmf2num
apk --no-cache add build-base
make -C /tmp/dtmf2num
install /tmp/dtmf2num/dtmf2num /usr/local/bin
# First decode DTMF tones from the source file that was played back, for verification:
dtmf2num test/dtmf_src.wav
# Now decode DTMF tones from the output dump file from the emulated sound device in QEMU VM:
dtmf2num ac97_out.wav
- name: Upload WAV dumps from QEMU as artifacts
uses: actions/upload-artifact@v4
with:
name: wav-dump-artifacts
path: ./*_out.wav
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
retention-days: 3
5 changes: 5 additions & 0 deletions scripts/build-in-container.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/sh
cd src || exit 1
test -f main.c
make CC=gcc CXX=g++
test -f output/sbemu.exe
Binary file added test/A32SBDG.DLL
Binary file not shown.
Binary file added test/A32SBPDG.DLL
Binary file not shown.
Binary file added test/DOS4GW.EXE
Binary file not shown.
224 changes: 224 additions & 0 deletions test/READ.ME
Original file line number Diff line number Diff line change
@@ -0,0 +1,224 @@
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
IBM Audio Interface Library for 32-bit DOS (AIL/32)
Release 1.05 of 19-Oct-93
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ List of files ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

SAMPLE AD ........... Sample YM3812 (Ad Lib etc.) Global Timbre Library
SAMPLE OPL ........... Sample OPL-3 (Ad Lib Gold etc.) Global Timbre Library
AIL32 ASM ........... Application Program Interface source file
DMASND32 ASM ........... Digital (sampled) sound driver source
XMIDI32 ASM ........... Extended MIDI (XMIDI) sequence interpreter source
DLLLOAD C ........... DLL loader for OS/2 32-bit Linear Executable modules
MIX32 C ........... Sample program source
STP32 C ........... Sample program source
VP32 C ........... Sample program source
XP32 C ........... Sample program source
AIL32 H ........... C header file containing all function prototypes
DLL H ........... C header file for DLLLOAD.C functions
AIL32 INC ........... Miscellaneous assembly equates
MPU40132 INC ........... Roland MPU-401-compatible I/O primitives
MT3232 INC ........... Roland MT-32 synthesizer driver source
SBMIDI32 INC ........... Sound Blaster MIDI port I/O primitives
SPKR32 INC ........... Tandy/IBM internal speaker synthesizer driver source
YAMAHA32 INC ........... Yamaha YM3812 & YMF262/OPL3 synthesizer driver source
386 MAC ........... 32-bit DOS assembly macros
A32MP MAK ........... Sample Microsoft makefile for MetaWare/Phar Lap build
A32WR MAK ........... Sample Microsoft makefile for Watcom/Rational build
A32ZF MAK ........... Sample Microsoft makefile for Zortech/Flashtek build
VPRICE VOC ........... Sample Creative Labs .VOC (PCM digitized sound) file
DEMO XMI ........... XMIDI file containing BACKGND, SHANTY, CHORAL.MID
SPKRDEMO XMI ........... XMIDI file for PC/Tandy internal speaker playback
DOS4GW EXE ........... Rational Systems 32-bit DOS extender for Watcom C
MSMAKE EXE ........... Microsoft MAKE program to process sample makefiles
READ ME ........... This file

Versions of the following files are present in the subdirectories
\WR, \MP, and \ZF. These filesets are compiled for use with the
Watcom/Rational, MetaWare/Phar Lap, and Zortech/Flashtek
development environments, respectively.

A32ADLIB DLL ........... Standard Ad Lib XMIDI sound driver DLL
A32ALGDG DLL ........... Ad Lib Gold PCM sound driver DLL
A32ALGFM DLL ........... Ad Lib Gold XMIDI sound driver DLL
A32MT32 DLL ........... Roland MT-32 XMIDI sound driver DLL (MPU401 MIDI)
A32MT32S DLL ........... Roland MT-32 XMIDI sound driver DLL (SBlaster MIDI)
A32PASDG DLL ........... Pro Audio Spectrum PCM sound driver DLL
A32PASFM DLL ........... Pro Audio Spectrum XMIDI sound driver DLL
A32PASOP DLL ........... Pro Audio Spectrum Plus/16 XMIDI sound driver DLL
A32SBDG DLL ........... Sound Blaster PCM sound driver DLL
A32SBFM DLL ........... Sound Blaster XMIDI sound driver DLL
A32SBPDG DLL ........... Sound Blaster Pro PCM sound driver DLL
A32SP1FM DLL ........... Sound Blaster Pro (YM3812) XMIDI sound driver DLL
A32SP2FM DLL ........... Sound Blaster Pro (OPL-3) XMIDI sound driver DLL
A32SPKR DLL ........... IBM PC internal speaker XMIDI sound driver DLL
A32TANDY DLL ........... Tandy 3-voice internal speaker XMIDI sound driver DLL
MIX32 EXE ........... Sample program: plays simultaneous XMIDI sequences
STP32 EXE ........... Sample program: plays raw 22 kHz. stereo samples
VP32 EXE ........... Sample program: plays Creative Labs .VOC files
XP32 EXE ........... Sample program: plays XMIDI sequences
AIL32 OBJ ........... Linkable API (Process Services) object module

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Addenda to documentation ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
V1.00 of 29-Nov-93
------------------

Documentation for the 32-bit functions may be found in V2.14 and later
editions of the AIL manual. If you have not yet upgraded to V2.14, contact
Miles Design for information on downloading the current base DOS version from
the BBS.

V1.01 of 1-May-93
-----------------

The new driver A32MT32S.DLL may be used to support Roland MIDI synthesizers
connected to the Sound Blaster's built-in MIDI port. We do not recommend
this capability be used during PCM speech/sound effects playback, as the
Sound Blaster exhibits severe noise artifacts when MIDI data is transmitted
during PCM playback.

Due to user demand, AIL/32 has been made fully compatible with the following
development environments:

* Watcom C/C++ with Rational Systems DOS/4GW
* Watcom C/C++ with Flashtek X32
* Zortech C++ with Zortech DOSX
* Zortech C++ with Flashtek X32

The old makefile AIL32.MAK has been replaced with the following three files:

A32WF MAK ........... Sample Microsoft makefile for Watcom/Flashtek build
A32WR MAK ........... Sample Microsoft makefile for Watcom/Rational build
A32ZF MAK ........... Sample Microsoft makefile for Zortech/Flashtek build

Please note that the Watcom linker must be used to rebuild the driver DLLs,
even if you are building the Zortech-compatible version. For the convenience
of Zortech-only users, the drivers and programs on this disk are pre-built
for Zortech/Flashtek compatibility.

*** WARNING ***

Watcom/Rational and Watcom/Flashtek users MUST execute a MSMAKE A32WR.MAK
or MSMAKE A32WF.MAK command to rebuild the programs before attempting to
link with any code in this release! This requires the Watcom V9.X linker and
MASM v6.X. Be sure to force a complete rebuild by deleting all .OBJ, .DLL,
and .EXE files before starting the make process.

For now, users of Watcom C++ 9.5 (Limited Distribution version) must change
the references to 'format os2 dll' in their makefiles to 'format os2 lx'
before attempting to build the drivers. Ignore any warning messages during
the link process.

Regardless of which compiler is in use, be sure to disable stack checking for
all modules which contain either XMIDI or timer callback functions. AIL/32
now switches to its own stack at interrupt time, which will cause stack
overflow errors if stack checking is not turned off.

V1.02 of 17-Jun-93
------------------

In the process of adding Flashtek compatibility to the V1.01 release,
Pro Audio Spectrum support was inadvertently disabled. This maintenance
release restores Pro Audio Spectrum compatibility.

The makefiles have been modified to build the driver DLLs correctly under
Watcom C++/32 V9.5.

V1.03 of 3-Aug-93
-----------------

For the convenience of Watcom users, separate directories now contain versions
of the drivers, examples, and linkable API module for each of the compiler/
DOS extender combinations supported by AIL/32. These are:

\WR: Watcom/Rational DOS/4GW
\WF: Watcom/Flashtek
\ZF: Zortech/Flashtek

It is no longer necessary to rebuild the drivers prior to use, as was the case
in earlier versions.

MASM version 6.1 and 6.1a cannot be used to assemble previous versions of the
AIL/32 API or driver set, due to their inability to correctly assemble code
containing some varieties of the LEA instruction. This release of AIL/32
has been modified to avoid the use of the LEA instruction, and should assemble
correctly under MASM 6.1 as well as 6.0. As MASM 6.1 appears to have many
other problems, we recommend the use of MASM 6.00B for 32-bit assembly
language development with AIL/32.

AIL/32's timer server now enables interrupts immediately upon gaining control
during a timer-tick interrupt, to improve reliability in environments where
lower-priority interrupts (serial, etc.) must be serviced frequently. Set
AIL32.ASM's EARLY_EOI option to FALSE if this causes problems for your
application.

Interrupts from sound cards with IRQ settings greater than 8 are not passed
from real to protected mode by the DOS/4GW DOS extender. Therefore,
"dropouts" may be noticed when playing .VOC files with the \WR\VP32 program
on Pro Audio Spectrum (and other) cards, because launching a DOS shell places
the system in real mode. This behavior is normal and will not affect your
application unless digitized sound effects are played while performing
frequent real-mode DOS or BIOS accesses. Note that this is a limitation of
the DOS/4GW product; the FlashTek versions of AIL/32 are not susceptible to
this problem.

V1.04 of 24-Sep-93
------------------

DMASND32.ASM now contains two new options, CHECK_ISR and ALWAYS_ACK_IRQ.
CHECK_ISR, when TRUE, implements an alternate method for rejecting spurious
"noise" IRQ 7 interrupts. The new technique may prove more reliable on many
systems than the old method of reading the DMA controller word count register.

Frequently, stopping Sound Blaster digitized sound playback before the
sample finishes playing will result in unexpected end-of-DMA interrupts
after sound output is halted. This can cause long delays when starting
future sound effects, due to I/O port timeouts. ALWAYS_ACK_IRQ, when TRUE,
causes AIL/32 to send an "interrupt acknowledged" signal to the Sound Blaster
prior to every I/O port write operation. This modification has been tested
thoroughly as part of Origin's Privateer(TM) beta test effort, but since it
is an empirical workaround for undocumented hardware behavior, we still
consider it safer to refrain from stopping PCM sound effects in progress
whenever possible.

Please note that AIL/32 does not support the Rational Systems DOS/4GW DOS
extender's V1.9 release, as shipped with Watcom's C++/386 9.5 product. This
release of DOS/4GW contains serious initialization and interrupt-handling
bugs, and will not work reliably on many systems, with or without AIL/32.
Rational's DOS/4GW Professional (V1.93) has been tested with AIL/32 with no
problems, as has the older V1.8 release.

V1.05 of 19-Nov-93
------------------

AIL/32 now supports the MetaWare High C/C++ / Phar Lap 386|DOS Extender
development environment. A new subdirectory, \MP, has been added for the
benefit of MetaWare/Phar Lap users. Please note that it is still necessary
to use the Watcom WLINK linker in the event the driver .DLL files need to be
modified or rebuilt.

The Watcom/Flashtek assembly option has been temporarily dropped from the
library, due to incompatibilities between the Watcom 9.5 tools and the
current FlashTek X32 DOS extender. FlashTek is expected to release a new
version of their extender and debugger package in the near future, which
should enable us to restore support for this combination.

The option DETECT_SBPRO has been added to DMASND32.ASM, with a default value
of FALSE. This addresses occasional problems reported during detection of
Sound Blaster Pro cards. When FALSE, DMASND32 does not attempt to read
values from the SBPro's "mixer" chip.

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Copyright (C) 1991-1993 Miles Design, Inc. All rights reserved
6702 Cat Creek Trail
Austin, TX 78731

(512) 345-2642 FAX (512) 346-9596 BBS (512) 454-9990
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ


Binary file added test/SBDIG.ADV
Binary file not shown.
Binary file added test/STP32.EXE
Binary file not shown.
Binary file added test/VOCPLAY.EXE
Binary file not shown.
Binary file added test/dos32a.exe
Binary file not shown.
Binary file added test/dtmf_src.voc
Binary file not shown.
Binary file added test/dtmf_src.wav
Binary file not shown.
Loading
Loading