ERMON README File

ERMON - ERMES radio path traffic monitor


0. Disclaimer
-------------
    ERMON is a hobby project built for educational purposes. It is not 
a commercial software. You may freely use it for non-commercial purposes. It is
not allowed to sell this program or place it to a pay-per-access site or media.
You are free to distribute this software as long as you don't charge for it.
    It is also not allowed to disassemble, debug or recompile this software.
    Please bear in mind that in some countries it might be illegal to decode 
ERMES transmissions. Author of this program cannot be held responsible for 
abusing of this software. It is your responsibility to check status of your 
local law regarding ERMES transmission monitoring before you use ERMON.
    If you do not agree with the above statements, just delete ERMON and related
files and do not use it anymore.


1. Introduction
---------------
    ERMES is one of the many paging standards used throughout the world. In fact
ERMES was chosen as an European paging standard. It is disputable whether or not
it will really become a standard but nevertheless it might be useful to get 
a more deeper view into ERMES functioning.
    ERMON is a software which was designed not only to decode and display ERMES
messages, but it is also capable of displaying of whole ERMES data stream,
including control commands and so on. ERMON also can record ERMES transmission
into a binary file, which could be decoded later. It is possible to set various
filtering options depending on the pager address. All traffic can be logged into
a text file. Also every subscriber can now be logged into separate file, so it
is easier to debug ERMES datastream.


2. What you need to decode ERMES
--------------------------------

a) Receiver
- must be able to tune from 169.4125 MHz to 169.8125 MHz - NFM.
- audio discriminator output is neccessary, try using your favorite search
  engine for finding some info on modifying your radio.


b) 4FSK interface or SB-compatible soundcard
- because ERMES uses 4FSK (or 4PAM/FM) modulation, you need some 4FSK
  demodulator. Unless you already have one, it is possible to build one quite
  easy, you can find some good designs here: 

    Design by PA3EIK 
       (http://www.qsl.net/pa3eik/4lev_fsk.htm)
    Another design on DSL's pages                  (http://www.geocities.com/CapeCanaveral/Hangar/8539/DIAGRAM.HTM)

  I personally prefer the first one because of integrated negative voltage
  supply but it seems to be a little less stable than a standard dual voltage
  setup.
- since version 0.80 it is also possible to use soundcard instead of 4FSK
  interface. Please keep in mind that ERMON is DOS software and it needs DOS
  SB compatible card. I suppose that it is not possible to use new PCI based
  soundcard with ERMON, even when switched to so called DOS-compatible mode.
- it is ABSOLUTELY NECCESSARY to use _audio discriminator output_ mentioned
  in section a) for connecting 4FSK or soundcard. Any other sound output from
  the radio may severaly distort signal waveform thus rendering 4FSK modulation
  unreadable. When using stereo soundcard be sure to hook incoming signal to
  both channel inputs.


c) PC to run ERMON
- I suppose you can run ERMON successfully on some slower 486 too, but it
  depends and you have to try yourself. ERMON is a DOS native program. It is
  also possible to run it under Win95, but unless you have really fast PC, you
  may lose some data. When using soundcard, you can try to "optimize" for your
  PC speed by using different sampling frequencies.


d) ERMON itself
- Since you are reading this, it is very possible you already have one :-)


3. ERMON history
----------------
    ERMON is basically based on a source code called ERMES3.CPP written by 
'shrd_lu@hotmail.com'. I have used interrupt & error correcting routines from 
this code. The very first versions of ERMON were designed for a soundcard use 
but later I decided to use 4FSK instead. Luckily Pavel <napsoft@post.cz> 
thought it would be nice to have souncard support working again and revived
the project once more.

0.4  : 02/07/99
       initial release

0.41 : 03/20/99
       +bug removed: cannot use another COM than COM1
       +option added: V to disable 50/43 lines text mode
                      I for reversing input polarity
       +minor improvements

0.45 : 03/23/99
       +added support for long messages

0.50 : 03/30/99
       non-public beta tester release due to massive
       code changes

0.51 : 04/02/99
       +new decoding routine- faster and more robust
       +new PCM file format- 8 times shorter
       +real time decoding
       +various code improvements

0.52 : 05/12/99
       +numerous minor bugs removed
       +continuous log support added

0.53 : 05/31/99 (non-public)
       +added filtering ('A' & 'F' options)
       +finally some README.TXT file :-), but not completed yet :-(
       +various code improvements
       +reversed effect of 'P' option

0.60 : 06/24/99
       +basically a public 0.53
       +just a few typos corrected

0.70 : 09/23/99
       +added extended logging mode L2, now every subscriber can have his
          own log file on your harddrive
       -tired of waiting for some feedback

0.71 : 02/29/00
       +more flexible decoding routine, allows for wider range of 4level
          fsk slicers and also non-standard PRE codewords. Thanks to
          Poul from DK it should be now possible to use ERMON in Denmark
          more successfully than before :-)

0.72 : 03/25/00
       +some minor mods in decoding routine
       +some parameters now can be changed on-the-fly: A,F,I,T & D.
          Just press a key when ERMON is running
       +added a translation table option. It is used for correct decoding
          of national character sets. Thanks to Jari from Finland for
          some valuable data.

0.73 : 04/09/00
       +minor bugfixes as usual
       +new translation tables (thanks to Poul from Danmark)
       -still tracking some nasty bug in interrupt routine

0.80 : 01/07/02
       +BACK after nearly 2 years !!! WooHoo! :-)
       +soundcard support by Pavel <napsoft@post.cz>. Please direct all
          souncard related questions to him.


4. ERMON options
----------------

    You can get some help by running "ERMON H" or "ERMON ?". You will get a list
of all available options which will be discussed in detail here:


V: disables using of so called "EGA lines" text mode. You may also try to use
   this switch if you have problems with default 43/50 lines text mode.

H or ?: displays basic help screen.

Rname: record a binary file from 4FSK input.

I: reverses polarity of data read from 4FSK.

Cn: COM port number. COM1 is default.

Sname: sets a data source for ERMON. 
       S4 sets for using 4FSK interface.
       Sfile is a file replay.
       SSC switches on soundcard.

Dn: debug mode. 
    D1 displays some more info.
    D2 displays all available additional data.

P: enables a pause mode for file replay. 
   You have to press a key after any (even empty) data batch.

Ln: log mode. 
    L1 logs all displayed data into one log file. 
    L2 logs every allowed address into separate file, can be used
       only together with F2 filtering, otherwise one can get a directory
       full of thousands of files.
       
A: process alphanumeric messages only.

F: filtering. 
   F1 uses file REJECT.ERM for a list of banned addresses which
     should be rejected from processing.
   F2 uses file ACCEPT.ERM for a list of allowed addresses which only
     will be allowed for processing.



    Format of *.ERM files is simple, every address has to start
on a new line, you can also put in your own comments like this:

-----REJECT.ERM sample----------

# This is a sample REJECT.ERM file 
# blah

0400140     # Some strange address
0400011     # Don't want to see this
0411444     # And this also

-----end of sample--------------

Currently you may put up to 2000 addresses into each file.


T: translation table. You will find a generic table named TABLE.TBL in
   ERMON package. You have to copy it and rename a copy to ERMON.TBL.
   This table is used for character translation of some non-standard
   characters. If you need to translate some character, you have to patch
   ERMON.TBL file. First you have to know an ASCII code of original 
   character, then you may patch table on the position of original
   character and put there desired value. It is best to patch the
   file using some hexeditor.
   An Example: suppose you need ERMON to print "I" instead of "1". OK.
   ASCII code of "1" is 49, so you will patch ERMON.TBL on position 49 and
   you will put there 73 which is ACSII code of "I".
   If you screw something up, you still have TABLE.TBL as a backup.

   Some future version of ERMON will inculde those tables directly
   in the code. Please consider separate table files as temporary
   development workaround.

   There are also some tables already prepared in ..\TABLES subdirectory.
   If you happen to live some of the listed countries, you can
   directly copy chosen table into ERMON.TBL.

Zfrq: set sampling frequency. Available options are 11025, 22050 and 44100.
   Default setting is 22050, you can try different frequencies to get the best
   results.

N: skip automatic signal level test. ERMON will not test signal quality on
   soundcard input and will proceed directly to data stream processing and
   decoding. 


4b. ERMON hot-keys
------------------
 
    It is also possible to use some hot-keys when ERMON is running.
Currently these keys are available:

A, F, I, T, D

These keys are correspoding to the command line options of the same
letter.





5. ERMON troubleshooting
------------------------

    ERMON is by default set up for using 4FSK interface on COM1. So if
you run ERMON without any options, ERMON will happily run expecting
4FSK input on COM1. If there is some valid ERMES data, ERMON will
display time&date together with some other numbers on the lower part
of screen and it will wait for some messages.
    If nothing happens you may have some hardware problem - receiver or
interface may be malfunctioning. Press Q and try to detect a problem.
    It is also possible that you have inverted audio output from the 
receiver. Try to use "I" switch and see if it makes any difference.

    Input signal troubleshooting: check that you are using _real_ audio
discriminator output. Any other output is usually useless. If you are
equipped with oscilloscope you can verify that signal waveform shows
four distinct amplitude levels. You can also try to record output
audio with any sound recording application and then inspect recorded
waveform in sound processing application, e.g. CoolEdit, SoundForge, etc.

    Of course you can also try to contact me with a description of your
problem. My current e-mail address is included in ERMON help screen.
If you decide to write a mail to me, please put in as much details as
you can. It is good to include some logfile made with D2 option and
also a ZIPPED(!) PCM file made with R option.
    Please direct any soundcard related problems to Pavel, his address
is also included in ERMON help screen.


...To be continued



6. To-do list
-------------

a) National character set support
   Update(V0.72): You have a generic translation table included. If you make
   a successful patch which works OK in your country, please send it to me and
   I will include it to ERMON package.

b) 8-bit data transmission processing
   ERMON already includes code to detect 8-bit data transmission, but it seems
   not to be used yet, so I couldn't make necessary tests.

c) Roaming subscribers
   Same as 8-bit data - detected, but not processed.

d) Soundcard support
   Update(V0.80): Soundcard support built-in. Give it a try! Big thanks go to
   Pavel.

e) Color coding - to make output more readable for some users (and more unreadable
   for others)

7. Author
---------

    You are welcome to send some feedback or your opinions to my e-mail.
Since it sometimes changes, it is best to use e-mail address found on help
screen of the latest ERMON version. Betatesters and user reports are always 
welcome.
