_____       ___   _________   ___
     /  _  \     /  /\ /  ______/\ /  /\
    /  / \  \   /  / //  / _____\//  / /______        |   |__|
   /  /  /  /\ /  / //  / /   /\ /  / //_____/\       | .    |
  /  /__/  / //  / //  /__/  / //  / / \_____\/
 /________/ //__/ //________/ //__/ /
 \________\/ \__\/ \________\/ \__\/
   _________  _______    _________  _________  ___   ___  _________  _______
  /__   ___/\/  ___  \  /  ___   /\/  ___   /\/  /\ /  /\/  ______/\/  ___  \
  \_/  /\__\/  /__/  /\/  /__/  / /  /  /__/ /  /__/  / /  /______\/  /__/  /\
   /  / /  /  _   __/ /  ___   / /  /  _\_ \/  _   __/ /  ____/\  /  _   __/ /
  /  / /  /  / \  \ \/  /\_/  / /  /__/  /\/  / \  \ \/  /____\/ /  / \  \_\/
 /__/ /  /__/ //__/\/__/ //__/ /________/ /__/ //__/\/________/\/__/ //__/\
 \__\/   \__\/ \__\/\__\/ \__\/\________\/\__\/ \__\/\________\/\__\/ \__\/


DIGITRACKER 1.4 - 16 KHZ 3 CHANNEL MONO  8 BIT SAMPLE TRACKER - 128K CPC (PLUS)

        _______________________________________________________________
       /                                                               \
      /         ALL CODE'N'DESIGN 1993 BY PRODATRON / SYMBIOSIS         \
     /                                                                   \
    /                           THIS PROGRAM IS                           \
   /               __        __   __   __        __   __   __              \
  /               |__  |__| |__| |__| |__ |   | |__| |__| |__               \
 /                 __| |  | |  | | \  |__ |_|_| |  | | \  |__                \
/                                                                             \
\                     THAT MEANS, THAT IT IS FREE TO COPY,                    /
 \            PUT IT INTO YOUR SOFTWARE-LIBRARY, SPREAD IT, BUT IF           /
  \     YOU USE IT, YOU SHOULD SEND A DONATION OF 10DM, 4P, 6$ OR 30F TO    /
   \                                                                       /
    \           JOERN MIKA, BERGSTR. 128, 47443 MOERS, GERMANY            /
     \                                                                   /
      \         BUG-REPORTS AND MODULE SWAPPING ALSO WELCOME !          /
       \_______________________________________________________________/


                               UPDATE-INFORMATION
_______________________________________________________________________________

What's new in this version (1.4)?

- better  PROGRAM-CONTROL:  It's  now possible to select the actual sample (f8,
  f5),  pattern (f7, f4) and octave (f9, f6) nearly everywhere, also the active
  channels  (f1, f2, f3) and the output-methode (f0, f<.>). Press ENTER to test
  the actual sample.
- NEW  PATTERN-MENU: New Functions for pattern-working like replace sample-num-
  bers, clear effects or transpose notes.
- SONGPLAY:  By  pressing  SHIFT  while selecting this option, the song will be
  started  at  his  first position. While song-playing you can skip to the next
  pattern  by  pressing TAB. The song-lenght and -position is displayed graphi-
  cally on the screen.
- BETTER DIRECTORY-DISPLAY (file-extension, -lenght and the free disc-space).
- PATTERN-EDITOR: Pressing <Control + 1 ,..., 9 , 0 , - , ^ > brings you to the
  positions 8, 16, 24... Shift+DEL kills the whole position.
- PLAYER-GENERATOR:  Now  you can choose the destination-drive and the filename
  for the player-code yourself.
- all  known  BUGS FROM V1.3 ARE REMOVED (E5- and E6-Commands work correct now,
  no troubles with corrupt disx, faultless sample-copy, faultless sampletest)


                     __   __  __     ___   __   __        __
               |  | |__  |__ |__| _ | | | |__| |  | |  | |__| |
               |__|  __| |__ | \    |   | |  | |  | |__| |  | |__


++++++++++++++++++++++++++++++++++++ INDEX ++++++++++++++++++++++++++++++++++++

                          0.) SMALL INTRODUCTION
                          1.) DIGITRACKER
                          2.) MOD-CONVERTER
                          3.) PLAYERCODE-GENERATOR
                          4.) DIGIBLASTER-INFORMATION
                          5.) MODULE-INFORMATION

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


                             0.) SMALL INTRODUCTION
_______________________________________________________________________________

DIGITRACKER now makes it possible: Creating and playing sounds, which are based
on digital intruments (samples).

Some facts......
- 64512 bytes free for samples
-    34 pattern (when pattern-lenght is set to 64)
- 16667 herz sampleoutput (Digiblaster)
- 14493 herz sampleoutput (Soundchip)
-    96 Songpositions
- 8 Bit-Digiblaster support for high-quality sound
- mostly  Amiga-Protracker-effekt compatible, 17 effects (slides, vibratos, ar-
  peggios, position-loops, sample-offset...)
- Powerfull sample-editor (echo, mix, smooth...)
- MOD-converter  for  amiga-protracker-modules, samples can convert 1:1 or 1:2,
  so you can transform MODs with a maximum lenght of 161 KB!
- playercode-generator,  createst  the  external player-routine at any point in
  memory, so you can use DIGITRACKER-modules in your own proggs
- powerfull  playerroutine, any startposition, interrupts-possible (so even DE-
  MOS are possible!), colorequalizer, equalizing rasterbar and more...
- comfortable uniformity standard-user-desktop
- highspeed everywhere, because DIGITRACKER is written 100% in MCode

DIGITRACKER consists of 3 modules:
- The  main-module, DIGITRACKER itself. In here you can edit or create new MDLs
  (modules).
- The  MOD-CONVERTER,  which converts Amiga-Protracker-MODs to DIGITRACKER-for-
  mat, sample (Amiga, PC...) and CPC-MOD transfer is possible, too
- The  PLAYERCODE-GENERATOR, which creates an external player-routine for DIGI-
  TRACKER-modules


                                1.) DIGITRACKER
_______________________________________________________________________________

The stearing of DIGITRACKER is uniformity everywhere. Use CURSOR-keys for choo-
sing and setting, COPY, RETURN or SPACE activates a function/option... All ope-
rations can be aborted by pressing the ESC-key. From sub-menus you come back to
main-menu with ESC,too. Press F4 to F9 to select the actual Pattern, Sample and
Ocatve. F0 and F. change the output-port. F1 to F3 switch the 3 channels off or
on. ENTER playes the actual sample.

A  module consists of two parts: the samples and the patterns. Any piece of mu-
sic written with DIGITRACKER is build up from patterns. Each pattern contains 3
tracks  (voices),  which hold the music itself (the notes and so on). The song-
list contains the sequence the patterns will be played. The samples are digital
sounds, they are used in the song like different instruments.

Sound-Parameters (in the big parameter-window):
-----------------------------------------------
SngPos - actual position in the song-liste.
Pattrn - pattern, which will be played at this position
Height - difference  from  the norm-height, in which the pattern will be played
         (in halfnote-steps).
Lenght - song-Length.  number  of the positions in the song-list, which will be
         played, until a repeat will be done
LoopTo - repeat-point (after playing the whole song-list)
Speed  - playingspeed (delay in 1/50 seconds between two positions in a pattern
Out At - sound-output.  A-C:  sound will be given out through a channel of your
         poor  sound-chip. D: sound will be given out through the "digiblaster"
         (a d/a-converter  at  the  printer-port, which was present in the "cpc
         amstrad  international 8/9 1991") YOU SHOULD USE THIS LITTLE HARDWARE,
         it brings you top sound-qualitiy! See chapter 4 for more information!
Sample - actual sample (for the pattern- and sample-editor)

Edit-Parameters (in the small edit-window):
-------------------------------------------
Pat - pattern, which is present in the pattern-editor window
Oct - octave, which is chosen for the pattern-editor
Buf - position in the copy-buffer
Len - number of positions in a pattern (lenght of the patterns)
Skp - number of positions, which will be skiped after setting a note/command...
      in the pattern-editor

DISC OP. - discmenue:
---------------------
LOAD SONG - load a module (samples+patterns+songdatas), extension:MDL
SAVE SONG - save the module
LOAD SAMP - load sample, if there is still enough memory. extension:SMP
            ATTENTION:  old samples from DIGITRACKER v1.1 will not be accepted.
            please  save them with v1.1 as a mdl-file. this is loadable without
            any problems.
SAVE SAMP - save sample
ERASE     - kill any file from disc
DRIVE A/B - choose drive
USER      - change user-number

hint:
After  loading a mdl-file, the one in memory will be overwritten. only the pat-
terns  which are standing behind the last pattern of the new song will survive.
So it is possible to merge songs.

PLAY SONG - play the whole module:
----------------------------------
DIGITRACKER  plays  the  module. It starts at 'SngPos', but if SHIFT is pressed
while  activating this option, it will jump to the beginning of the song before
playing. During playing the song, TAB skips to the next pattern.

PLAY PAT. - play actual pattern:
--------------------------------
Only the pattern, which is presented in the editor, will be played.

EDIT SONG - edit actual pattern:
--------------------------------
Every pattern contains 3 tracks, every track stands for one of the three voices
(channels).  Every  track is subdivided into (norm: 64) positions. One position
has the following structure:

AAB CDEE

AA - note (C,C#,D,D#...)
B  - octave (1-3)
C  - sample-number, which should be played here
D  - command-number
EE - command-parameters

instead of the note+octave (AAB) there can be nothing (---) or a stopper (RES),
which turns of a (perhaps) played sample in this voice.

to set a note, press one of the following keys...

             | chosen octave                | chosen octave + 1
     --------+------------------------------+-----------------------------
     note:   |  C# D#    F# G# A#    C# D#  |  C# D#    F# G# A#    C# D#
             | C  D  E  F  G  A  B  C  D  E | C  D  E  F  G  A  B  C  D  E
     --------+------------------------------+-----------------------------
     key:    |  S  D     G  H  J     L  :   |  2  3     5  6  7     9  0
             | Z  X  C  V  B  N  M  ,  .  / | Q  W  E  R  T  Y  U  I  O  P

commands:
-------------------------------------------------------------------------------
0xy - normal  play or arpeggio (0-X-Y). X and Y in halfnote-steps. This command
      will produce a one-channel chord.
1xx - slide up. this command slides the pitch up. XX is the speed. Big XX means
      fast sliding.
2xx - slide down. this command slides the pitch down.
3xx - tone  portamento.  this will automatically slide from the old note to the
      new  (which  has to stand before this command). XX is the speed (00 means
      taking the speed from the last commando).
4xy - vibrato. Y is the numbers of steps up/down, X is the length of the steps.
      Try it out yourself! (00 means taking the last parameters)
9xx - sample offset. With this you can begin a sample at any position. if xx=1D
      the sample will be played from position #1D00.
Bxx - position  jump.  Pattern break + going on at the position xx (in hex!) in
      the song-list.
Cxx - turn  of  volume  (perhaps).  If  xx (in hex!) is equal or lower than the
      volume-stop-parameter  (in  the setup-menu) this command will do the same
      as a stopper ('Res'). No effect in the other case.
D-- - pattern break. pattern will be interrupted to go on in the next one.
Exy - E-commands: See below...
Fxx - song-speed: in hex!

5,6,7,8 and A are not used and haven't any consequences.

E-commands:
-------------------------------------------------------------------------------
E0x - change output-channel. X can be 0, 1 or 2 and stands for one of the three
      soundchip-channels  (A,B,C). If digiblaster is active, this command shows
      no effects.
E1x - fine slide up. A large X means sliding at a slow speed.
E2x - fine slide down.
E4x - vibrato waveform. X=0: sine. X=1: ramp down.
E5- - loop point. set position for E6 command.
E6x - jump  to  loop.  Jumps x-1 time to the point, which was setted by the E5-
      command.  That means, that the area between E5 and E6x will be repeated x
      times. E60 works like the E5 command (sets loop point).
EDx - note delay. the note in front of this command will be played after x*1/50
      seconds.
EEx - pattern  delay.  makes a break which takes as much time as you need, if x
      positions would be played.

E3,E7,E8,E9,EA,EB,EC and EF are not used and haven't any consequences.

SONG LIST - edit song-list:
---------------------------
The songlist consists of two splits. On the one side there are the pattern-num-
bers,  which  are  played  at these positions. On the other side, there are the
height-differences (in halfnote-steps) in which the pattern are played.

SAMPLER - edit samples:
-----------------------
The  actual  sample is ploted, his name, length, repeat-begin and repeat-lenght
are  showed below. With cursor-keys you can change to an other sample or choose
a  sample-parameter now. By pressing RETURN it is possible to change the chosen
parameter. DEL will set the parameter to zero (by pressing DEL over the Lenght-
Parameter  you will clear the actual sample!). COPY makes a copy of the sample,
ENTER playes it.
If the sample-lenght isn't zero, you enter the Tools-Menu after pressing SPACE:
- CUT: will cut out a cooseable part within the actual sample
- VOLUME:  change the volume of the sample (in percent, example: 200%: give the
  sample the double of his loudness, 50%: half of his sound-volume)
- OCTAVE:  shift  sample  one  octave  up ('U') or  down ('D'). Octave up means
  packing  two  sample-bytes in one (=> half lenght, that brings perhaps a qua-
  lity loss), octave down means double every byte (=> no quality loss, but only
  possible, when there is enough memory free)
- MIX: will mix two samples together, target is the actual sample
- BACKWARD: will backward the actual sample
- ECHO:  creates  an echo-effect. You have to set the volume, in which the echo
  comes back (lower than 100% means, that the echo will become lower and lower,
  higher than 100% give the echo more and more power) and the position,at which
  the echo cames back at the first time.
- UNITE: combines the actual sample with the next one. After this, the next one
  will be killed.
- SMOOTH: smoothes the actual sample. Makes the sample a bit deeper (deeppass),
  very high frequences will thrown out. So the samples will be more softy...

PATTERN - more pattern-work:
----------------------------
All  functions  in the pattern-menue require the adjustment of the pattern-area
to  which  these  operations should work. After setting the 'First Pattern' and
the 'Last Pattern' you have to select the track(s) (channel),too. Press RETURN/
COPY/SPACE, when you want to select all three channels for these work or choose
only one of the three by pressing 1, 2 or 3.
- Replace:  Replaces  a  sample-number  by an other. After setting the pattern-
  area  you  have  to  enter  the old number and the new one. Then all selected
  sample-numbers will be replaced by the new number.
- Transpose:  Set  the transpose-value first, then the area and the sample-num-
  ber. Now all notes with the selected sample will be transposed.
- Clr.Note:  All  selected  notes in the setted area will by cleared, when they
  have the selected sample-number.
- Clr.Effx: The choosen effect will be cleared in all positions of the selecte-
  pattern-area.

OTHERS:
-------
Setup - change several adjustments
- Ed:PlaySamples: normal: YES. In this case in the pattern-editor you will hear
  the played samples, when you set notes or change octaves. NO omits that.
- Song-Transpose:  General-height  of  the whole song in halfnote-steps. In 1:1
  Amiga-transfered songs, song-transpose is set to 12 (1:2 => 0).
- Pattern-Lenght: number of positions in each pattern.
- Palette-Number: 0-7 screen-colors.
- TonStop At Vol: 0-63.  Sets  the limit, at which the C-Command behaves like a
  stopper ('Res').

Printer - makes a song dump
- Print-Songdatas:  YES  means, that the module- (patternlist, Song-Lenght,...)
  and  sampledatas  (name, lenght,...) will be printed out, too, NO means, that
  DIGITRACKER only makes a pattern-dump.
- First/Last Pattern: the pattern-area, which DIGITRACKER have to print
- Lines/Page: To get a correct form-feed,you should use this parameter (0 omits
  a form-feed). If you use 12 inches paper, you should set this parameter to 72
  (standard).

Memory
- Sample-Memory: How much is used for samples and how much is free. The samples
  are stored in the 2nd ram-bank of your 128k machine.
- Patterndatas need...: If you want to use the Modules in your own proggs, this
  is  important:  The number of bytes (all in hex!) the song needs in the first
  ram-bank.
- Song needs...on Disc: Important when you save the module on disc...

Clear All - clear the complete song (patterns, samples und song-parameters)
Clear Pattern - clear all patterns and the song-list
Clear Samples - clear all samples
All three functions are saved with a request.


                               2.) MOD-CONVERTER
_______________________________________________________________________________

Today there are Amiga-MOD-Files (Protracker-Modules) by thousands. This part of
DIGITRACKER makes it possible to convert these modules into the MDL-Format.

First  you have to transform the MOD-Files from Amiga/PC/... to CPC. This is no
problem  with  programms like DOS-COPY (Face Hugger production), which are able
to copy MS-DOS Disks to CPC.

Parameter (enter with TAB):
---------------------------
- Source/Destination Drive: A/B
- Sample-Transfer: 1:1 -  direkt  sample-transform (no quality loss). 1:2 - two
  bytes  will  be  packed to one, so the samples get the half of their original
  lenght (=> long MODs can be converted in this way)
- Sample-Volumes:  NO - the samples get their original loudness. YES - the sam-
  ples get the volume, which was chosen in the MOD-File.

CONVERT MOD - convert Amiga-Protracker-Module:
----------------------------------------------
only  possible,  if  the  module hasn't too many patterns (>34), too many song-
positions (>96), too many samples (>16) or to big samples (together >63 KB when
converting them 1:1, >126 at 1:2 converting-mode).

In the other case first the patterns will be converted.MOD-Patterns have 4 Voi-
ces,  so you have to decrease them to 3 voices (by mixing or removing). You can
do this for each individual pattern (take the 'per Pattern' option) or for the
whole song ('per Song' option).
Now  you can remove one of the 4 voices by pressing 1 to 4 (only B,D and F com-
mands  will  be  saved,  if  there  is place in one of the other tracks) or mix
a voice into an other one by pressing 'M'. If mixing is chosen, you have to en-
ter the 'Source Voice'(1-4), which will be mixed in the 'Destination Voice' (1-
3).  That  means, that notes from the Source Voice will only taken, if there is
place for them in the Destination Voice.
Example:  By  Pressing  M,  1,  2, the 1st channel will be mixed in the 2nd one
(which  was the 3rd on Amiga, but now the 2nd, because the 1st was removed). M,
3, 2 will mix the 3rd into the 2nd (which was the 2nd before, too).

PRINT MOD - make a Amiga-Protracker-Module Dump
-------------------------------------------------
This  prints  out  an  Amiga-Protracker-Module  in  the form you know from lame
amiga...

CONVERT SAMPLES - convert PC, Amiga or Drumming-CPC Samples:
------------------------------------------------------------
Choose the sample-type you want to convert to DIGITRACKER-SMP-format:

- VOC-Files: Samples, which are used on PC (Soundblaster).
- WAV-Files: PC-samples, which are often used in MS-Windows.
- SAM-Files: Amiga-samples.
- INS-Files: Samples  used  in 'Drumming-CPC', the tool from Face Hugger, which
             should demonstrate the Digiblaster.

The parameter 'Sample-Transfer' will be noticed in here, too! (1:1 or 1:2)
HINT: If you convert amiga-samples ('SAM'), you have to enter the lenght first,
if  these  files haven't the BIN-form, because with AmsDOS it isn't possible to
find  out the exact lenght of ASCII-files. So transfer them in BIN-form always,
this  wouldn't  make  any troubles. Use FACE HUGGERS DOS-COPY (Setup: Handle as
BIN!) or Amiga-Copy.

CON.CPC-PROTRA. - convert CPC-MOD-files to MDL-format:
------------------------------------------------------
MODs,  which  was  created with CPC-Protracker, will be converted to MDL-format
without any prblems.


                            3.) PLAYERCODE-GENERATOR
_______________________________________________________________________________

This  one  is able to create an external player-routine for DIGITRACKER-modules
at (nearly) any point in the memory (you can't use #4000-#7FFF or 0-#200).

The player-routine (its lenght is about 4KB) performs the following:
- load a module
- play the loaded module

ATTENTION:  Don't  use v1.1-modules ('cos of the 8-bit samples)! Load them with
DIGITRACKER and save them again, then you can use them with the player-routine.

Now  the description of the player-routine and how to use it. The offset-values
must  be  added  to  the  start  address of the player-routine to get the right
address.  The  following  examples belongs to a player-routine, which starts at
&3000 (Anfadr=Startaddress of the player-routine).

+ 00 => Load a module (in a basic-program)
        CALL Anfadr+00 (,start-address)
-------------------------------------------------------------------------------
You  have  to  open the module-file first (OPENIN"file"), then you can use this
CALL  to  load it to #5600 (if no 'start-address' is present) or to 'start-add-
ress'.  That  means,  that the pattern-datas will be loaded to this address (in
the 1st ram-bank), the samples are loaded in the 2nd ram-bank always at #200.
(0-#200 in the 2nd ram-bank is used for tables and routines).
Don't load the pattern-datas to used areas in the memory!
Example:
OPENIN"SOUND.MDL":CALL &3000,&4000:CLOSEIN
Loads 'Sound.Mdl', the patterns will be stored at #4000.

+ 03 => Play a module (in a basic-program)
        CALL Anfadr+03 (,optionbyte (,start/patternnumber))
-------------------------------------------------------------------------------
A loaded module will be played. If there isn't any 'start/patternnumber'(and no
optionbyte) DIGITRACKER take 0 for it automatically. 'optionbyte' is subdivided
into 8 bits:

Bit 0,1 => Output-channel: 0-2 => PSG  (Soundchip) Channel A,B or C; 3 => Digi-
           blaster.
Bit 2   => =0: Songplay. The complete module will by played ('start/patternnum-
               ber' is the start in the song-list [='Songpos'])
           =1: Patternplay. Only one pattern will by played. It is the pattern,
               which is choosen with the 'start/patternnumber'-parameter.
Bit 3   => =1: turns on the equalizing rasterbar.
Bit 4   => =1: turns on the colorequlizer (inks 1,2 and 3 are used).
Bit 5   => =0: Copies  the area from #100 to #200 behind the player-routine and
               put  it  back  after  playing.  DIGITRACKER uses this area while
               playing (set this bit to 0 if you don't understand it all...)
           =1: If you don't need this memory-area, you should set this bit to 1
               (so the area behind the player-routine is free, now)
Bit 6   => =1: Requests the keys from f0 to f9. In the normal case, the player-
               routine stops after pressing SPACE. If this bit is set to 1, the
               routine  stops  when  a  f-key was pressed by the user, too! The
               number of  f-keys, which will be requested (and can be pressed),
               is  fixed  in a value (read down the documentation). The pressed
               f-key's number will be putted into another value (read down...)
Bit 7   => =1: enable interrupts. The player-routine has an own interrupt-hand-
               ler. This becomes active, when this bit is set to 1. Every frame
               there  are 6 interrupts. The addresses of the 6 routines have to
               be fixed in a table (read down...)

Exampls:
- CALL &3003,3 => output port is Digiblaster, nothing more.
- CALL &3003,1+4,3 => playes the 3rd pattern through channel B of the Soundchip
- CALL &3003,8+32 => playes through Channel A, Rasterbar is active and the area
  from #100 to #200 will not be saved
- POKE &3000+12,5:CALL &3003,3+16+6:PRINT PEEK(&3000+13) => playes  through Di-
  giblaster with active colorequalizers, f0-f4 will be requested. After playing
  the pressed f-key will be printed
- CALL &3003,128,10 => starts song at position 10 with enabled interrupts

+ 06 => Load a module (in a mcode-program)
        HL=address
-------------------------------------------------------------------------------
Don't  forget to oben the file before (with CALL #BC77) and close it after this
command (CALL #BC7A)!

+ 09 => Play a module (in a mcode-program)
        A=Optionsbyte, B=Startposition/Patternnummer

+ 12 => Number of requested f-keys
-------------------------------------------------------------------------------
Value: Number of f-keys, which will be requested, if bit 6 of the optionbyte is
set  to 1.  Example: <5>  means,  that  the keys f0,f1,f2,f3 and f4 will be re-
quest.

+ 13 => (indirect) number of the pressed f-key
        f-key = byte 12 - byte 13
-------------------------------------------------------------------------------
After  finishing  the  playing-procedure,  you  can ascertain the number of the
pressed  f-key  by  this  value  (if bit 6 of the option byte was setted to 1).
Example: Value +12 (number of requested f-keys) is set to 5. After playing,this
value (+13) contains 2, that means, that the user has pressed f3 (=5-2). Try it
out yourself!

+ 14 => Escape-Byte
-------------------------------------------------------------------------------
After  making  a  CALL Startadr+3 (Basic-Songplay) or a CALL Startadr+9 (MCode-
Songplay), this value is setted to 0. If its content changes during playing the
module  (that is possible with interrupt-routines), the player stops. This fact
makes  it  possible  to  escape from the playing-procedure in an other way than
pressing Space (or pressing a f-key).

+ 15 => pen-number of the equalizing rasterbar (0-15, 16=border)

+ 16,17 => colors of the rasterbar and the area around it
-------------------------------------------------------------------------------
Don't  use the basic-colors, use the (real) colors of your gate-array. The fol-
lowing table shows them:
00 - 84    04 - 88    08 - 77    12 - 94    16 - 71    20 - 83    24 - 74
01 - 68    05 - 93    09 - 86    13 - 64    17 - 79    21 - 90    25 - 67
02 - 85    06 - 76    10 - 70    14 - 95    18 - 82    22 - 89    26 - 75
03 - 92    07 - 69    11 - 87    15 - 78    19 - 66    23 - 91

+ 18-33 => colortable for ink-equalizer
-------------------------------------------------------------------------------
This table contains all colorvalues, which will be runned through when the ink-
euqalizer is active. Use the colors of the gate-array (table above).

+ 34-45 => addresses of all six interrupt-routines
-------------------------------------------------------------------------------
Here  you have to put the six 16-bit addresses, at which the interrupt-routines
start (if bit 7 of the option-byte is setted to 1). (the six values contain the
address  #000F,  if you don't change them, so that DIGITRACKER always will make
a Call to #F (if interrupts are active). #F contains a RET command normally.
Some hints for the interrupt-routines:
- Don't change the index-registers (IX,IY). If you need them in your interrupt-
  routines, save them first (PUSH, POP at the end...)
- Put a RET command at the end of your interrupt-routines.
- You can place the int-routines at nearly every point in the 1st ram-bank (not
  from #100 to #200 and from #4000 to #7FFF!).
- Every  interrupt-routine (they are six) will be called one time in a 1/50 se-
  cond.
- For  democoders,  the following could be important: The 1st of the 6 routines
  gets  the  interrupt, which comes directly after the frame-fly. The following
  interrupts will be allocated to the other routines in the right sequence.
- Don't make too long interrupt-routines! 10 rasterlines are the absolutely ma-
  ximum.
- As more cpu-time the int-routis need, as deeper and slower will be the sound-
  output!
- If interrupts are enabled, the area from #100 and deeper will be used for the
  stack-pointer!


                          4.) DIGIBLASTER-INFORMATION
_______________________________________________________________________________

As  you now DIGITRACKER supports the so called "Digiblaster" for digisound-out-
put,  too.  The Digiblaster is a simply D/A-converter (hardware, which converts
digital-signals  to  analog-signals) which was presented in the CPC Amstrad In-
ternational.  It  contains only cheap component-parts and brings you 8-bit qua-
lity sound, so it's hardly recommendable!


  1 o---->|----[  1k]-------------+    You need:
                                  |    ========================================
P 2 o---->|----[150k]----[15k]----+
R                                 |      ->|-  8 cheap SI-diodes
I 3 o---->|----[ 82k]----[ 1k]----+
N                                 |      -[ ]- 14 resistors (low tolerance,1%!)
T 4 o---->|----[ 39k]----[2k2]----+
E                                 |      -[470]- 1 trimmer
R 5 o---->|----[ 10k]----[10k]----+
                                  |      1 centronics connector
  6 o---->|----[ 10k]-------------+
P                                 |      1 connector for your audiosignal
O 7 o---->|----[ 4k7]----[220]----+
R                                 |
T 8 o---->|----[ 2k2]----[100]----+    If you aren't able to build up the Digi-
                                  |    blaster yourself,perhaps you may contact
  9 o---------------+----[470]----+    OCT,who would build up it (costs:25 DM).
                    |      ^      |
                    |      +------+    His addy:
                    |             |    OCT, PLK 174556E, 68161 Mannheim,Germany
                    o AUDIOSIGNAL o    ========================================


                      5.) AUFBAU DER MDL-DATEIEN (MODULE)
_______________________________________________________________________________

(sorry guys, only in german!)
Die  Song-Module  (MDL-Files)  liegen im ASCII-Format vor und bestehen aus zwei
Bloecken:
- Der  erste  Block enthaelt den Datenkopf (Songname, Laenge, Songliste usw...)
  und die Pattern. Dieser wird immer in die erste Ram-Bank geladen.
- Der  zweite Block besteht aus den in der angegebenen Reihenfolge hintereinan-
  derliegenden Samples.

Die  ersten  beiden Bytes geben die Laenge des ersten Blockes an, Bytes 3 und 4
die Laenge des zweiten Blockes. Die Laenge des ersten laesst sich mit folgender
Formel ausrechnen:
Laenge = 512 + 9 * Patternlaenge * Patternanzahl
Die  Laenge des zweiten Blockes erhaelt man, wenn man die Laengen aller Samples
addiert.

Dahinter folgt direkt der erste Block.

1. Block: Song-Kopf und Pattern
-------------------------------

- Songkopf: Dieser ist 512 Bytes gross und folgendermassen aufgebaut:

+ 000 => Modulname (8 Bytes)
+ 008 => Namen der 16 Samples, auch jeweils 8 Bytes
+ 136 => Songliste  2*96  Bytes. Das erste Byte gibt jeweils die Patternnummer,
         das zweite die Hoehe (Transposewert in Halbtonschritten, normalerweise
         0) an
+ 328 => Sampledaten: 16*...
         - Samplelaenge (1 Word)
         - Repeatbeginn (1 Word)
         - Repeatlaenge (1 Word).
+ 424 => Songlaenge (1 Byte).
+ 425 => Patternlaenge  (1 Byte) kann 1-99 sein. Normalerweise 64, gibt die An-
         zahl der Positionen innerhalb eines Pattern an
+ 426 => Loop To (1 Byte). Position in Songliste, zu der nach Songende gesprun-
         gen wird
+ 427 => Songspeed. Frames zwischen zwei Noten (normalerweise 6)
+ 428 => Songtranspose, liegt zwischen 0 und 12(in Halbtonschritten).
+ 429 => Modul-Version. 0  bedeutet,  dass die Samples in diesem Modul in 8-Bit
         vorliegen, Bei 7-Bit Samples (neue Version) steht hier eine 1.
+ 430 => Volumeuntergrenze. Gibt an,ab welchem Wert sich das C-Kommando wie ein
         Stopper verhalten soll.
+ 431 => Ab hier sind alle Bytes bis Offset 511 unbenutzt und daher 0. Sie sind
         fuer eventuelle Erweiterungen vorgesehen

- Pattern: Hier folgenden die Informationen fuer die belegten Pattern. Jede Po-
  sition  (normalerweise gibt es davon 64 pro Pattern) besteht aus 3*3 Bytes (3
  Bytes  fuer  jeden der drei Kanaele). Die drei Bytes pro Kanal haben folgende
  Bedeutung:
  - 1 => Note. 0 bedeutet nichts ('---'), 1-36 stellen die Noten fuer die 3 Ok-
         taven  dar (1=C-1,2= C#1,3=D-1,....35=A#3,36=B-3), 37 steht fuer einen
         Stopper ('Res')
  - 2 => Das Highnibble dieses Bytes gibt die Samplenummer an,das Lownibble die
         Effectnummer.
  - 3 => Die beiden Nibbles dieses Byte geben die genaue Spezifizierung des Ef-
         fekts an.

2. Block: Samples
-----------------

Der 2. Block, der direkt hinter dem ersten steht, enthaelt die Sampledaten. Die
Samples  liegen  in der vorgegebenen Reihenfolge hintereinander (7 Bit, Vorzei-
chenlos.
_______________________________________________________________________________

At  this  moment there are over 300 DIGITRACKER-modules. If you are registered,
you  will  get  the complete module-list by requestion. You get all modules you
want, if you send me back-postage and disx.

DIGITRACKER CONSISTS OF  1 1 0 0 0  LINES OF ASSEMBLER-SOURCECODE.


prodatron/SYMBIOSIS, 19.11.1993

            ________________________________________________________________
           / ______________________________________________________________/\
          / /\_____________________________________________________________\/
         / / /   / /\/ /\/ _  _  /\/ __ \  / /\/ __  /\/ ____/\/ /\/ ____/\
        / /_/_  / /_/ / / // // / / /_/ /\/ / / /\/ / / /___ \/ / / /____\/
       /___  /\/___  / / //_// / / __  / / / / / / / /___  /\/ / /___  /\
      ____/ / /\__/ / / / \ / / / /_/ / / / / /_/ / /___/ / / / /\__/ / /
     /_____/ / /___/ /_/ / /_/ /_____/ /_/ /_____/ /_____/ /_/ /   / / /
    _\_____\/__\___\/\_\/__\_\/\_____\/\_\/\_____\/\_____\/\_\/___/ / /
   /_______________________________________________________________/ /
   \_______________________________________________________________\/

                                PRODUCTION 1993