Jan 032018
JM Protracker player, player for MOD and OCKTAMOD for SB, SBPro, SB16, PAS, GUS.
File JMPROTR.ZIP from The Programmer’s Corner in
Category Music and Digitized Voice
JM Protracker player, player for MOD and OCKTAMOD for SB, SBPro, SB16, PAS, GUS.
File Name File Size Zip Size Zip Type
JMPROTR.DOC 17179 5212 deflated
JMPROTR.EXE 17179 16061 deflated

Download File JMPROTR.ZIP Here

Contents of the JMPROTR.DOC file

Resident JM Pro Tracker v5.0
(C) May 1992 - March 1993 by Josha Munnik from Ultra Force

This program is public domain, meaning that you may distribute this program
freely at non-commercial terms.
It is not allowed to change the contents of the program in any way or
to use any parts of the program for other purposes.


1. Quickstart
2. Introduction, support & requirements.
3. Usage
4. Resident loading & errors
5. Version history
6. Player Toolbox
7. Credits & thanks

1. Quickstart

Run 'JMPROTR' without any command line options to see a short description of
the possible options.

Run 'JMPROTR *.mod' to play all MOD files in the current directory.
Add /S option for stereo output. Add /R option to load the player resident.

After loading resident, run again to unload the program (possible command line
options will be ignored).

2. Introduction, support & requirements

Welcome to the Resident JM Pro Tracker player. An utility for playing Amiga
Modules and Oktalyzer files. The player is a simple program using the command
line for passing any parameters. It can be loaded resident playing files in the

The player supports the following sound cards :

- Gravis Ultra Sound,
- Sound Blaster 16,
- Sound Blaster Pro 2.0,
- Sound Blaster Pro 1.0,
- Sound Blaster 2.0,
- Sound Blaster 1.5,
- any other Sound Blaster compatible sound card.

Note : Any reference just to Sound Blaster card in this document refers to
all the Sound Blaster cards in general (1.5, 2.0, Pro 1.0, Pro 2.0, 16).
When a reference will be made to a specific kind of Sound Blaster, the
type will be mentioned.

The program will play the following music formats :
- 15 instrument mod files,
- 31 instrument mod file for 4 channels,
- 31 instrument mod file for 6 channel produced by Triton FastTracker,
- 31 instrument mod file for 8 channel produced by Triton FastTracker or
- Oktalyzer music format using 4,5,6,7,8 channels.

The player supports all Pro-Tracker effects of version 2.2A except the BPM.

This programs requires at least a 80286 processor to run with. The amount
of memory needed is the size of the largest Module + 57K.

3. Usage


The following keys can be used while playing :

- '+'. . . . . increase volume
- '-'. . . . . decrease volume
- Home . . . . restart at begin of song
- Up . . . . . go 5 pattern-rows back (reverse)
- Down . . . . go 5 pattern-rows forward
- PgUp . . . . go to the start of the pattern at the next song position
- PgDown . . . go to the start of the pattern at the previous song position
- Escape . . . quit the player
- CTRL-Break . exits the program at once.
- Any other. . End the song with a volume fade. When pressing a key while fading
the song will start the next song.

If the program is loaded resident PRINT-SCREEN may be used to go to the next
one in the list.

Command line options

Usage : JMPROTR options

The command line is scanned from left to right. Two type of options are
possible :
- Main options, the last occurrence will be used.

Example : With 'JMPROTR /P240 File.MOD File2.MOD /P220' the option /P220 will
be used.

- File options, all song files following the option will be played using that

Example : 'JMPROTR /V32 file.mod f1.mod /V48 file3.mod /V64 file4.mod' will
play file.mod & f1.mod with main volume 32, file3.mod with main
volume 48 and file4.mod with main volume 64.

Main options : Sound card initialisation

For Ultra Sound and Sound Blaster cards :

- /Pxx

xx is a hexadecimal number representing the port to scan at.
Normally all possible ports are scanned starting at the lowest and ending
with the highest.
This option may be used to scan at one specific port. For example if there is
more than one sound card, this option can be used to select one of the
Sound Cards.

For Sound Blaster cards :

- /Ixx

xx is a decimal number representing the IRQ to use. At default all possible
IRQ's which may be used, are scanned.

- /Dxx . . . . . . Use DMA channel x (0,1,3) for 8 bit (/D = /D1).

xx is a decimal number representing the DMA channel to use. At default
all possible DMA channels which may be used, are scanned.

- /Bxx . . . . . . Use DMA channel x (0,1,3,5,6,7) for 16 bit.

Same function as /Dxx, except now it's the DMA channel for 16 bit transfers.

Main options : Player

For Ultra Sound and Sound Blaster cards :

- /G

This option may be used to show the patterndata being played instead
of the default output. The format of the output is as follows :

- current song position (hexadecimal)
current pattern number (hexadecimal)
current row in pattern (hexadecimal)
chan. 0chan. 1 chan. 2 chan. 3 chan. 4 chan. 5 chan. 6 chan. 7

Effect & effect value (hexadecimal)
Instrument number (hexadecimal)
Note, when # is shown it's the corresponding black key

- /R

Use this option to load the player resident. After loading the player
resident, run JMPROTR again to unload the player. Any command line options
will be ignored.

- /Q

Use Quiet mode, show no instrument information when starting a song.

For Ultra Sound, Sound Blaster Pro and Sound Blaster 16 :

- /S[+,-]

Use stereo (/S+) or mono (/S- = default) when allowed. This option works only
on the Sound Blaster Pro, Sound Blaster 16 and UltraSound. Otherwise it
is ignored. See also /U option.

For Sound Blaster cards :

- /T . . . . . . . Use timer interrupt instead of Sound Card interrupt.

Use the timer interrupt instead of the Sound Blaster IRQ interrupt to calc
the next part. This option may result in a better sound quality. See also
the notes on running Windows when the player is loaded resident.

Note : the timer is always used when playing on the UltraSound card.


Set output rate (only of use when using a Sound Blaster card).
xx is a decimal nr, which may range from 5000 to 23000 (for the Sound
Blaster 1.5) or 44100 (for the Sound Blaster 2.0, Pro & 16). Using a higher
output rate gives better sound quality but also requires more calculation
time (using a very high rate may give some sound distortion when using
a very slow computer).

Note : When selecting a rate between 22800 and 23600 on the
Sound Blaster 16 the playspeed will slow down. This is result of
a bug in the Sound Blaster 16.


Set the mixing mode, this option is only of use on a Sound Blaster card.
At default /F+ is selected. The /F- option can be used the get a louder
output; the sound however may sound distorted, use /V option to lower the
main volume and make the distortion less.


Set the nr of parts to calculate in one time (xx = decimal number). A part
exists of 1/50th of a second of the output. Setting the nr of parts
to calc in one time determines the frequency at which the player will be
called. Using a higher value may result in less nr of calls in one second,
but every call in turn will take more time. This option may also be used
to create a better sound quality (by calculating more parts in one time).
This will only take place when the /T option is not used.

File options : player

All sound cards :

- filename.ext

An Amiga module (extensions .MOD & .NST) or an oktalyzer file. Specifying
a file which is not a module or oktalyzer file will lead to unpredictable
results (with hanging the computer as the worst). Wildcards and pathnames
are allowed. The extension are NOT used to check the kind of file so they
may differ from the ones used in this file.

- /Vxx

xx is decimal number which specifies the main volume. The value has to
be between 0..64. The default setting is 64.

- /Nxx

xx is a decimal number which set the nr of repeats.
The value may range from 0 to 65535, 0 is the default value.

- /Uxxxxxxxx

Set the channel options flag. Every x stands for a channel, where the first
x is used for channel 0, the second for channel 1, etc.
The x may exist of the following chars (case-insensitive) :
- 'L' : channel is on the left side
- 'R' : channel is on the right side
- 'M' : channel is on the left and right side
- 'O' : channel is turned off

When playing mono the 'L' & 'R' don't have effect. The 'O' has always effect.
The 'M' has only effect when playing on an UltraSound, on a Sound Blaster Pro
or Sound Blaster 16 the left side chosen.


JMPROTR /P240 /I3 /D0 /B7 *.mod

Scan and initialise the Sound card at port 240h, irq 3 using DMA channel 0
for 8 bit transfers and DMA channel 7 for 16 bit transfers.

JMPROTR /Urrll *.mod /V32 a:*.mod /Ullmmrrmm \*.okt

Play the .MOD files in the current directory with the first two channels
0 & 1 on the right and next two channels 2 & 3 on the left. Turn the channels
4,5,6 and 7 of (used with 6 & 8 channel modules).

Then play the .MOD files on drive A:, using the same channel settings
and a main volume of 32.

At last play the files *.OKT in the root directory with different channel

JMPROTR /M12000 /S *.mod

Play MOD files in the current directory with an output rate of 12.000 and
in stereo (when available).

4. Resident loading & errors

When loading the player resident, take the following in account :

Other sound programs.

- If you run another program which will reset the Sound Blaster or clear the
Ultra Sound memory the player will stop. It is still memory and has to be
removed in the normal way.
- Programs using only the OPL-chip, should cause no problem.


- If you will run MS-Windows add the /T option when loading JMPROTR
resident, otherwise it is possible the output will stop.
- The player will slow down with the Ultra Sound when running in 80386
enhanced mode. (This will be fixed in the near future.)
- See the first note when using Sound drivers for the Sound Card on which
the music is outputted.

Other resident programs.

- JMPROTR takes over several interrupts, which the program restores the
interrupts to their old state when it is removed from the memory.
So take care if you load other programs resident after loading JMPROTR.

5. Version history

This is version 5.0, previous versions were only distributed along the
Ultra Force members for internal use and testing.

It is the successor of JMPLAYER. The name has been changed because much (if
not all) has been recoded (adding effects, getting better quality).

6. Player Toolbox

The module & noise-tracker player used in JMPROTR is also available as a
separate programmers toolbox.

Some specifications :

Support for Gravis Ultra Sound, SB 1.5, SB 2.0, SB Pro 1.0, SB Pro 2.0 and
SB 16.

The player allows up to 16 separate digital channels which may be put
individually on the left channel, right channel or both (the last option not
yet supported by Sound Blaster cards).

Note : JMPROTR supports only up to 8 channels, because there's no known
format other than the MIDI format with support for 16 channels.

The player is accessed using an interrupt. So it can be called in simple
manner from Pascal, C, assembly or any other programming-language with
support for interrupt calls.

Either the player can be linked to the main-program using an OBJECT file or
a separate player-loader can be used. The loader will initialise the
Sound Card and reserve the required amount of memory.

So different programs can use the player without linking the player-code to
the program. Since the player is already initialised the programs
only have to pass some info on the music data and then start the song.

By using general data structures the player allows support for other file
formats than the ones mentioned in this document. There's a separate
program which contains the code for loading the module and oktalyzer files.

Functions are included for following the data and changing positions
while playing.

There's support for different modes for choosing between the quality of
sound and the time required by the player.

The player supports all Pro-Tracker effects of version 2.2a, except the BPM.

The player is completly written in fast optimized assembly code.

All functions are fully documented.

Interested ???? Contact Ultra Force at the following address :

Ultra Force
Software Development
P.O. Box 84373
2584 AJ The Hague
The Netherlands

Fax : +31-70-3584048
BBS : +31-70-3585109

If you want a reply add a selfaddressed envelope and international stamp

7. Credits & Thanks

I would like to thank the following persons :

Tran and CyberStrike from Renaissance for making their experiences
known via UltraDox and in this way saving me a lot of debugging time.

Jerry van Waardenberg, for the Beta-testing and his useful remarks.

Eric Oostendorp, for the Beta-testing.

Remco de Berk, for the Beta-testing and for the Ultra Sound and Sound Blaster
16 ASP.

Eric Soonius, for the Beta-testing.

Jeroen Koomen, for the Beta-testing.

Greetings go to the other members of Ultra Force and all the Demo-groups
we know.

 January 3, 2018  Add comments

Leave a Reply