The "DOS Head Unit"
By Hayden Smith, UK
Posted on October 2, 2006
Jump to:

Software Configuration

The final step was to setup the software. The harddrive contained all my music and I'd used winamp on my desktop to create various playlists I'd want to listen to. The first step was to make MPXPLAY run automatically on bootup. For this I needed to create a file called autoexec.bat in the root directory of the harddrive. It contained the following text:

autoexec.bat

c:/doslfn/doslfn c:/mpxplay/mpxplay

The next step was to configure the keyboard controls to be relevant to what I had selected. In the DOCs folder theres a list of all the codes that relate to each key. Note: where the programmer referred to certain keys as "gray" it means keys on the number pad. So you browse through the mpxplay.ini file under the keyboard control section removing keycodes relevant to the keys you are using and replacing them with the code: "0xffff" which means "no key assigned". The next step is to find the functions you want to use and assign the relevant keycode to it, so if I assigned "b" to be "skip to next track", in my mpxplay.ini file the line would read:

mpxplay.ini

KeyStepForward =0x3062 ;

The main keys I set up were volume up and down, skip to next track, pause (which unpauses when pressed again), random on/off and repeat on/off. An extra function of the software is the ability to browse a file manager or playlist independently (called the editor in the software). I assigned one key to "KeyEditChgSide" which changed the main view from the filemanager to the playlist. I also set up keys to browse up and down the editor, and a key to select. I could now control opening of files and playlists and select songs to play in playlists directly. Next I assigned a key to "KeyLCDpageNext", the function of which will be explained below.

Finally I assigned a key to Exit the software. Exiting the software saves the settings for volume, current playlist, current playing track, where in the track we are, the status of the random and repeat modes as well as other settings with no keys assigned - all of which won't otherwise be saved at power off. This does means this button needs to be pressed every time you want to save your settings for when you next start up the software.

The next stage in the mpxplay.ini file was to set-up the display settings. Different screens are referred to as pages, and you will need 2 pages, one to show information on the current track playing and one to show the editor, this is where the "KeyLCDpageNext" function comes in to let you change what you see. There's a fair amount of customisation here (information is in the Lcd_disp.txt file in the DOCS directory), and you can create more pages if you want but here is an example of mine:

mpxplay.ini

[LCDdisplay] LCDport =LPT1 ;LPT1..LPT4 or COM1..COM4 LCDtype =1 ;1,2,3,4: LPT, 5,6,7,8:COM-port LCD LCDrows =20 ;number of characters/line (usually 8-40)(max. 512) LCDlines =4 ;number of LCD lines (1-16) LCDportdelay =5 ;for LCDtype 1,2,4 (value should be between 1 and 500 (or maybe more))(increase it if the display doesn't work properly, reduce it to get a faster displaying) LCDrefresh =0 ;refresh delay (lower value faster, higher value slower refresh (0=40fps,1=20fps,3=7fps,5=4fps)) LCDscrollspeed=4 ;(-"-) LCDscrolldelay=30 ;pre-delay before scrolling (20 = 1 sec) LCDpagereset =400 ;(re)set LCD to page 0. after n/20 sec (20 = 1 sec) if there's no desktop (keyboard) activity ;LPT to LCD controlbit configuration for LCDtype 1 and 3 (different wiring schemes, different bit configs)(0x01=LPT-pin 1, 0x02=LPT-pin 14, 0x04=LPT-pin 16, 0x08=LPT-pin 17) ;(note: old LCDtype3 cfg: RS=0x08,E1=0x01, old LCDtype4 cfg:RS=0x04,E1=0x08) (set the unused bits to 0x00) LPT_cntrlbit_RW=0x02 ;read/write bit (used at type 3) LPT_cntrlbit_RS=0x04 ;register select bit (command/data) LPT_cntrlbit_E1=0x01 ;enable (data send) for controller 1. LPT_cntrlbit_E2=0x08 ;enable for controller 2. (LCDtype 1 only: 4x40 displays) ;display-item config(s) LCD_items=1,linescroll,P_TITLE," "; LCD_items=2,linescroll,P_ARTIST," "; LCD_items=3,p_timepos,"::",p_songtime; LCD_items=4,2,"[Vol:",mix_vol,"|",s_hq,"|",s_re,"|",s_rn,"]"; LCD_items1=1,linescroll,editorhlinem1," "; LCD_items1=2,linescroll,editorhline," "; LCD_items1=3,linescroll,editorhlinep1," "; LCD_items1=4,linescroll,editorhlinep2," ";

These settings tell the software to use a 20x4 display based on the HD44780 chip. The first page will show the song title and artist, let you know how far into the track has played and what the full song length is, and tell you the volume level, whether high quality is switched on, the repeat mode, and whether random is activated. The second page will show the editorbrowser, the second line of the screen is the currently highlighted file with the other three lines showing the tracks either side.

The final thing to set is the startup setting. At the end of the mpxplay.ini file you'll find these settings and you'll need to adjust them to look something like this:

mpxplay.ini

[startup] StartupEnabled =11 OldListType =0 OldListname =C:\ OldSongname = OldFrameNum =2755

These settings tell the software to load the last saved playlist and track settings as well as any other variables for the software and when the exit key is pressed to save the current settings.

One final note: When setting up the software I found playback to be faster than it should be. When connected to a monitor, a part of the screen displays the playback speed - you can adjust this speed until the playback sounds normal. Then you need to edit this line to reflect the speed shown in the software. For some reason I found it did not save this setting when exiting:

mpxplay.ini

Speed =100 ;-sp

/div>