---------------------------------- VCC - Virtual CD Changer for DOS ---------------------------------- Version 2.3 for MPXPlay 1.55 Copyright (c) 2007 Brent Harris Free for non-commercial use --------------- Version History --------------- Ver 0.95 (09-04-01) ------------------- * Fixed an issue which caused vcd.exe and vcdtsr.exe to hang when a Gamepad Pro isn't connected * Keyboard mappings were changed so the frontend can be operated using a PS/2 numeric keypad Ver 0.96 (09-23-01) ------------------- * Auto-Exit from MPXPlay, when trigger buttons are pressed on the GamePad Pro stopped working when the keyboard mappings were changed. This issue has been fixed * First public release Ver 1.0 (12-08-01) ------------------- * Fixed a timing bug in the input routine * After switching CDs, it will start at the beginning of the new selection Ver 1.01 (05-05-02) ------------------- * Fixed the "Runtime error 200" bug Ver 1.1 (03-03-02) ------------------- * Major rewrite of directory navigation routines. The result: on-the-fly directory ordering! * Renamed vcd.exe and vcdtsr.exe to vcc.exe and vcctsr.exe, respectively. People often use vcd as an abbreviation for "Video CD", something that this software has nothing to do with. Ver 1.11 (05-05-02) ------------------- * Fixed the "Runtime error 200" bug Ver 1.2 (06-22-02) ------------------- * VCCTSR --> MPXPlay 1.46 compatability! Auto-Exit from MPXPlay when done with Album * VCC --> Implemented bounds checking on the volume control Fixed a minor display glitch on the volume control Ver 1.3 (12-01-02) ------------------- * VCCTSR --> Interim release as features to be included in V2.0 get added Replaced volume meter with spectrum analyser. * VCC --> No changes since V1.2 Ver 2.0 (02-15-03) ------------------- * VCCTSR --> Removed volume display and put a bitrate display in its place Moved the volume control to the config screen Added a config mode for adjustment of the less commonly used MPXPlay settings: e.g. volume, speed, surround, etc. Added lyrics and nfo support Added OBD-II support for Elm32x-based scantools Added keyboard support Added command line help * VCC --> Removed volume control functionality Added support for multiple drives letters (up to 9)...must use same directory structure on all drives Can be used to launch realscan.exe for reading OBD-II troublecodes Added command line help Fixed an intermittant, but annoying, timing bug. Ver 2.1 (11-02-03) ------------------- * VCCTSR --> Added compression percentage display for Monkey's Audio Files Displays a calculated bitrate for WAV files instead of assuming a 44100K bitrate Minor speed optimizations Should consume slightly less stack space Fixed the "Elm32x not found" error which was being displayed on the LCD display whenever an OBD-II device isn't connected (even when the /noobdii command switch was being used). Removed this message entirely since it's nothing more than a leftover piece of debugging code. * VCC --> Overhauled the 'music file detection' routine. In previous versions if a directory didn't contain at least one MP3 or WAV file, a 'No audio tracks' error was displayed. APE, WAV, MP3, MP2, AC3, OGG, MPC, CDW, and AAC files are currently supported. Ver 2.11 (01-03-04) ------------------- * VCCTSR --> No changes since V2.1 * VCC --> Newer versions of MPXPlay like to load ID3 info even when a text file is fed to it. Added "-in 4" to the MPXPlay command string to tell it to give higher priority to the list file. Ver 2.12 (03-09-04) ------------------- * VCCTSR --> No changes since V2.1 * VCC --> Found and fixed a bug in the directory browsing routine which caused the program not to recognise a directory when its archive attribute is set. The behavior of -in switch in the latest MPXPlay alpha has changed. VCC will now check to see if fileinfo.txt exists in the current music directory. If so it'll pass "-in -il fileinfo.txt" to MPXPlay Ver 2.2 (11-20-05) ------------------- * VCCTSR --> VCCTSR crashed under MPXPlay v1.52 Switched over to a heavily modified version of Nir Sofer's unit to handle all of the low-level TSR functions Fixed a range-error bug in the routine that arranges text for the lyrics/description display VCCTSR can now protect itself from being installed twice Gray "/" key wasn't being read properly in the TSR External programs can perform a "Installation Check" on VCCTSR by calling function Int 10 with AX = DAADh, BX = C678h The return value, when installed, is: CX = A006h, ES = program segment prefix * VCC --> Add FLA, MP4, M4A, and DTS to the list of recognized filetypes. Removed recognition for the CDW filetype. Found and fixed a bug in the directory browsing routine which caused the program not to recognise a directory when its archive attribute is set. The behavior of -in switch in the latest MPXPlay alpha has changed. VCC will now check to see if fileinfo.txt exists in the current music directory. If so it'll pass "-in -il fileinfo.txt" to MPXPlay Ver 2.3 (11-06-07) ------------------- * VCCTSR --> Found and fixed a bug in the serial port initialization routine Since VCC v3.0 won't be ready for a while, a couple of things have been back-filled back into the 2.x branch... Track number display was no longer working when used with MPXPlay 1.54+. Changed the way that the track number is read from the screen, so that it'll work in newer versions of MPXPlay. Rewrote the Spectrum analyzer display routine. The new one should look a lot better. * VCC --> No changes since V2.2 ---------- Disclaimer ---------- The author is not responible for any problems that arise from using this software. End-Users agree to use this software at their own risk. -------------------------------- Files included with this release -------------------------------- VCC.EXE The frontend that handles directory navigation VCCTSR.EXE A TSR which is active while MPXPlay is running README.TXT Documentation FRONTEND.BAT A batch file which is used to launch the frontend sofware --------------------------- Supported Hardware/Software --------------------------- * MPXPlay 1.55 (1.43 and later will probably work) * A Matrix Orbital 2041 20X4 serial LCD connected to COM1 at 19200bps * A Gravis GamePad Pro connected to the PC Gameport (in GrIP mode) -or- a PS/2 numeric keypad * ELM32x-based scantool connected to COM2 at 9600bps (optional) ------------ Installation ------------ * Make a directory for MPXPlay (e.g. c:\player). * Unzip MPXPlay to this directory, and configure it according to the MPXPlay documentation. If you're using a numeric keypad, leave the key mappings at their default settings. * Edit the autoexec.bat, and add the MPXPlay directory to the path statement * Unzip VCC to the MPXPlay directory * Make a directory for your music files (e.g. c:\music) * Go into your music directory at create 26 subdirectories A,B,C,...,Z * Add references to vcctsr.exe and frontend.bat to the autoexec.bat (see the example below) ---------------- Command Switches ---------------- To allow more flexibility V2.0 and later support the use of command switches in both VCC.EXE and VCCTSR.EXE. Below is a list of supported command switches: VCCTSR [/NOGPP] [/NOOBDII] [/NOKB] [/?] /NOGPP Disables Gravis Gamepad Pro Support. Use this command switch to bypass Gamepad Pro detection if a Gamepad Pro joystick isn't being used. On systems without a Gamepad Pro, the joystick detection routine takes a few seconds to timeout. Use this command switch to avoid the delay/warning message. /NOOBDII Disables OBD-II support. Use this command switch if you aren't using an ELM32x-based scantool. The Elm32x detection routine takes several seconds to time out, as well. Use this command switch to avoid the delay/warning message. /NOKB Disables PS/2 numeric keypad support. Use this command switch if you're not using a numeric keypad. By default vcctsr intercepts all keyboard input while MPXPlay is running. This allows for a more convenient method of Disc switching, and provides access to the Nfo/Lyrics/Config/OBD-II modes when using a numeric keypad. It also eliminates the need to reconfigure MPXPlay's keyboard settings. /? Displays a help screen. VCC [musicdir] [/n] [/NOGPP] [/?] Note: Don't call VCC.EXE directly. If you do, the directory switching won't work properly. Instead, pass the command line info to frontend.bat Frontend.bat will automatically forward this information to VCC.EXE If in doubt, take a look at the examples below. musicdir This is the directory where the music files are located. Include a drive letter, but don't use a backslash at the very end. e.g. if your music is in c:\music replace musicdir with c:\music e.g. if your music is in the root directory on d: drive replace musicdir with d: /NOGPP Disables Gravis Gamepad Pro Support. Use this command switch to bypass Gamepad Pro detection if a Gamepad Pro joystick isn't being used. /n Enables multiple hard drive support. Replace n with a number between 2 and 9. When using multiple drives (or partitions), one needs to keep the music directory naming consistant. For example if all of your music from A-M is on d:\music and the rest of your music is on e: drive you'd specify d:\music as your musicdir then put the rest of your music in e:\music Since there are two music drives you'd use the /2 switch /? Displays a help screen. Example1: This example assumes the following: * "MSDOS 7.x", (comes with Windows 95/95b/98/98se) * A MPXPlay directory of c:\player * A music directory at c:\music * All music files are on the same drive/parition * A Gravis Gamepad Pro Joystick is being used * An ELM32x OBD-II Scantool is being used config.sys ---------- STACKS=9,256 DOS=HIGH,UMB SHELL=C:\COMMAND.COM C:\ /E:512 /P DEVICE=C:\WINDOWS\HIMEM.SYS /TESTMEM:OFF autoexec.bat ------------ @ECHO OFF PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\PLAYER; C:\WINDOWS\SMARTDRV.EXE /X 8192 C:\PLAYER\VCCTSR.EXE /NOKB C:\PLAYER\FRONTEND.BAT C:\MUSIC music directory --------------- c:\music\a c:\music\b c:\music\c .......... c:\music\z Example2: This example assumes the following: * "MSDOS 7.x", (comes with Windows 95/95b/98/98se) * A MPXPlay directory of c:\player * A music directory at c:\music * All music files are on the same drive/parition * A numeric keypad is being used * An ELM32x OBD-II Scantool isn't being used * A config.sys file similar to the one listed above * A music directory structure like the one listed above autoexec.bat ------------ @ECHO OFF PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\PLAYER; C:\WINDOWS\SMARTDRV.EXE /X 8192 C:\PLAYER\VCCTSR.EXE /NOOBDII /NOGPP C:\PLAYER\FRONTEND.BAT C:\MUSIC /NOGPP Example3: This example assumes the following: * "MSDOS 7.x", (comes with Windows 95/95b/98/98se) * A MPXPlay directory of c:\MPXPLAY * Music is stored in the root directory on d: (and e:) * Two hard drives (or paritions) are used to store the music * A Gravis Gamepad Pro Joystick is being used * An ELM32x OBD-II Scantool is being used * A config.sys file similar to the one listed above autoexec.bat ------------ @ECHO OFF PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\MPXPLAY; C:\WINDOWS\SMARTDRV.EXE /X 8192 C:\MPXPLAY\VCCTSR.EXE /NOKB C:\MPXPLAY\FRONTEND.BAT D: /2 music directory --------------- d:\a d:\b d:\c .... d:\m e:\n e:\o e:\p .... e:\z ------------ Adding Music ------------ VCC does not use playlists. Disc navigation is directory based. ID3 tags aren't used. Instead, all disc and track info is stored in textfiles. Usage is best explained by example: Suppose you've just ripped a cd. Assume that the band is called "Space Bison" and the album title is "Up Up and Away". Also assume there are 4 tracks called "one" "two" "three" and "four". Keeping with the assumptions in Example 1 and 2, you'd... * Go into c:\music\s * Make a directory, lets say,"SPACEBIS" * Go into c:\music\s\spacebis and copy the music files into this directory, (01.mp3 02.mp3 03.mp3 04.mp3) * Create a file called "discinfo.txt" containing two lines: (no quotes) On line1 put "Space Bison" On line2 put "Up Up and Away" * Create a file called "fileinfo.txt" containing four lines: (no quotes) On line1 put "01.MP3 one" On line2 put "02.MP3 two" On line3 put "03.MP3 three" On line4 put "04.MP3 four" ------------- Adding Lyrics ------------- Lyrics are stored in text files, one for each track. The filename is a two digit number and must be identical to the music filename, but with a .lyr file extension. For example, the lyrics file for track two would be named 02.LYR Put the song title on Line 1, skip a line, then type in the lyrics. ------------------ Adding an nfo file ------------------ An nfo file is a text file which contains a description of the CD. Put the band name on Line 1, then put the CD title on Line 2. Skip a line, then type in something meaningful. It could be a review of the CD, the history of the band, or anything else you feel like writing. Save it as DISC.NFO --------- Operation --------- The software is operated from the GamePad Pro, or a numeric keypad. The keys/buttons used vary somewhat depending on which mode the software is in. -Normal Mode- The software starts in Normal Mode once the boot process is complete. In Normal Mode, disc switching, track switching, rewind, fast forward, etc. can be done. The band name, CD title, track title, track number, spectrum analyser, track time and the bitrate are displayed. Function Gamepad Pro Numeric Keypad Rewind <1> Fast Forward <3> Pause / Unpause <2> Previous Track <4> Next Track <6> Stop <5> Play Previous Disc <-> Next Disc <+> Previous CD Group Next CD Group <*> Nfo Mode <7> Lyrics Mode <8> OBD-II Mode <9> Config Mode <.> -Lyrics Mode- In Lyrics mode, the lyrics for the current track (if available) are shown on the LCD display. Function Gamepad Pro Numeric Keypad Scroll Up <-> Scroll Down <+> Back to normal mode -Nfo Mode- This mode is similar to Lyrics mode, except a description of the current disc is displayed instead. The keys/buttons used are the same. -Config Mode- This mode is where some of MPXPlay's other settings can be accessed Function Gamepad Pro Numeric Keypad Volume Up <+> Volume Down <-> Speed Down <1> Speed Up <3> Bass Down Bass Up <*> Treble Down <7> Treble Up <9> Balance Left <4> Balance Right <6> Surround Down Surround Up <8> Back to normal mode -OBD-II Mode- In this mode real time data (Mode 1) is read from an Elm32x-based Scantool connected to the car's onboard computer. The following functions are supported: speed (mph), rpm, temperature (farenheit), calculated load%, timing (degrees), throttle position (%), fuel system mode (open loop warmup, closed loop normal, open loop due to driving conditions, open loop fault, closed loop fault), and fuel trim%. Function Gamepad Pro Numeric Keypad Back to normal mode The following functions are also supported while in OBD-II mode: Rewind <1> Fast Forward <3> Pause / Unpause <2> Previous Track <4> Next Track <6> ---------- Tech Stuff ---------- Directory navigation is done in the following way: * Frontend.bat calls VCC.EXE and passes it the music directory (and any other command line parameters it needs), then it runs the batch file go.bat (which was just created by VCC.EXE) While VCC.EXE is running: * Directory navigation is possible * The current disc/album are the only things displayed on the LCD Display Once a disc is selected: * The file go.bat is created in the music directory * Go.bat is run When go.bat is running, MPXPlay is run, then when done frontend.bat is called causing VCC to be run again. This completes the cycle. --------------- More Tech Stuff --------------- When MPXPlay is running, VCCTSR becomes active. Track information, bitrate and the spectrum analyser are read from screen memory and then displayed on the lcd. Keystrokes are faked in order to control MPXPlay. Lyrics, nfo, config, and OBD-II modes are provided by the tsr, as well. -------- RealScan -------- VCC can be used to launch RealScan. That way one can use an Elm32x-based scantool to read troublecodes from the car's onboard computer. First copy realscan.exe to the MPXPlay/VCC directory. When it comes time to run RealScan, keep in mind that it can only be launched when MPXPlay isn't running. To launch RealScan press the blue button on the gamepad, or 5 on the keypad to stop the music (and exit out of MPXPlay). Then push select on the gamepad or 9 on the keypad. Once your done with RealScan you can press Yellow or Enter to get MPXPlay to play the music, right where it left off. ----------- Limitations ----------- The is no method to adjust the LCD contrast in this software The is no method to play random tracks ----------------------------- Future possibilities / issues ----------------------------- Configuration program: Likely Support for serial LCDs from other vendors: Likely Support for COM3 and COM4: Likely Support for USB HID gamepads connected to "USBwiz": Likely Support for Car2PC device connected to "USBwiz": Likely Random tracks: No plans for this feature at this time. LCD Contrast Control: No plans for this feature at this time. Ability to uninstall the TSR: A good possibility ---------- On the web ---------- http://thecoldfront.com Last updated on Saturday, November 3, 2007. Copyright (c) 2007, Brent Harris