added a note about subversion
style adptations, new hosting
updated links
frozen ver 0.9.8
prerelease
ignore IBK instruments that require rhytmic OPL mode
optimization of XMS routines
removed BETA flag
doc update and date bumps
IBK percussion pitch is properly applied to OPL output
implemented support for the pitch bend range controller with OPL output + finally got pitch bending sound right
added some music theory in OPL comments
improved help screen + replaced inline _asm with pragma aux
code cleanup (comments) and minor optimizations
added wheel pitch support (note bending) to the MIDI-to-OPL driver
replaced OPL-writing function by assembly routines + hidden opl_noteon() and opl_noteoff() away
changed default OPL fonts to a set borrowed from ADLMID (bank #0)
when XMS initialization fails then DOSMid uses low RAM instead of aborting
website update (bumped copyright date + updated links for v0.9.7)
frozen ver 0.9.7 in tags
pre-release: minor doc improvements, version and date bumps, etc
wmake pkg cleans up temporary dirs progs and appinfo
wmake pkg builds also dosmid.zip, a "normal" (flat) distribuable DOS archive like if it is 1990
no auto-quit when 3 files fail in a row, now user can always abort with ESC
version update
pkg builds a SvarDOS package now, and zips sources separately
optimized delta-time computation (solution kindly provided by Tim Rentsch from comp.lang.c)
DOSMid can be downloaded right from the website + minor cosmetic improvements and updated screenshot
website stored in svn for easier tracking
ver 0.9.6 in tags
date bump
delay computation is performed on 64 bits to avoid overflows (replaced the solution provided earler by Tim Rentsch, both approach have the same performance hit but using long long is just simpler)
pkg creates source and binary zip files separately
LSM simplified to SvarDOS format
deltatime computation replaced by a better one by Tim Rentsch
copyright date bump + dropped the "beta" from version string
improved doc
fixed timing computations on files with low BPM
elticks computation is present only in debug mode
OPL3 emulation plays files an octave lower (suggested by Campbell Kerr)
bumped dates
DOSMID comes with an extra DOSMIDLT.EXE binary (dosmid lite) without AWE support for smaller RAM footprint
implemented /preset=GM|GS|XG|NONE and reorganized outdev dev_clear()
dates bumped + added a hack that resets the pitch bend before each song, since pitch bend appears to survive an "all controllers off" event
added a few missing include-guards so Queequeg stops whining
line break fix
fixed /opl when combined with /noxms (sound device initialization is performed before mem_init(), so the former has a chance to get some malloc()ed memory if needed)
freezed v0.9.5 to tags
bumped version to 0.9.5
fixed file-reading corruption that happened on first cache-boundary read
small extra debug output around syx files loading
test one-by-one reads
history.txt update before release
freezed v0.9.4 to tags
bumped version to 0.9.4
fixed playlist gap delay computation (fixed /delay behavior, too)
disable interrupts when writing to nowtime
removed the protected-mode version of the awe32 lib - dosmid will not ever need it, being a real-time app
doc improvement
doc fix
faster "randomness"
fix: /random was always playing first song of the m3u list, now it is random from the start
implemented backspace action (previous song)
displaying the amount of memory used by the MIDI file
slight help edit and moved mem_clear() invocation earlier in codeflow
mem.c keeps track of how much memory has been allocated so far
doc update
dropped rand() in favor of using the dos 18.2Hz timer (saves 80 bytes while "randomness" is still acceptable for the need)
display tracks count on screen, also optimized the areas of screen that are refreshed during play time
fixed RMID header parsing (this time for real)
never try to read more tracks than are declared in MThd
fixed RIFF-RMID header decoding and displaying the exact error code with "invalid format" messages
merged midi_readchunk() into midi_readhdr(), dropped dependency on bcmp() and multiple midi_readhdr() optimizations
replaced trackmap_t structures with an array of ulongs
fixed midi_gettrackmap() invocation
chunk format (track) validation happens earlier so no need to store the chunk id if we expect only one possible type (MTrk) anyway
renamed chunkmap structs to trackmap so it better reflects the actual content
fixed wbuff corruption
/noxms can be passed through config file now
ignore exe and obj files in tests
cli flags are kept in uchars to save a byte or two of RAM
opl.c relies on udelay() instead of the Watcom's delay()
moved udelay() to timer.c to avoid duplicating it each time
converted source files to cr/lf terminators
include headers clean up and documentation
program version is kept in version.h from now on, and do not need to be passed in function calls
color scheme is declared as const instead of static
OPL pitch/freq/octave tables are declared as const (instead of static)
AWE presets use far allocated memory
using a static buffer for short-lived buffer needs instead of relying on malloc()
switching to small memory model
dropped useless stdlib.h inclusion