597 lines
17 KiB
Plaintext
597 lines
17 KiB
Plaintext
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
PD - POCSAG Decoder
|
|||
|
|
|||
|
User Documentation
|
|||
|
|
|||
|
Version 2.00 January 1996
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Contents
|
|||
|
|
|||
|
|
|||
|
1. Introduction
|
|||
|
|
|||
|
2. Registration
|
|||
|
|
|||
|
3. Installation
|
|||
|
|
|||
|
4. Interfacing
|
|||
|
|
|||
|
5. Configuration
|
|||
|
5.1 PD.INI
|
|||
|
5.1.1 General Parameters
|
|||
|
5.1.2 Function Codes
|
|||
|
5.1.3 Colours
|
|||
|
5.2 PAGERS.INI
|
|||
|
5.3 REJECT.INI
|
|||
|
|
|||
|
6. Running the program
|
|||
|
6.1 Supported Keys
|
|||
|
6.2 Status Line
|
|||
|
6.3 Normal Mode
|
|||
|
6.4 Debug Mode
|
|||
|
|
|||
|
Appendix A Version History
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
1. Introduction
|
|||
|
|
|||
|
PD, together with a receiver or scanner, allows the off-air decoding of
|
|||
|
POCSAG paging signals at 512, 1200 or 2400 bits/second. This makes it
|
|||
|
extremely useful for the testing of paging transmitters and systems.
|
|||
|
|
|||
|
Decoding of both numeric and alphanumeric pager data is supported, as is
|
|||
|
the hex dumping of raw POCSAG codewords.
|
|||
|
|
|||
|
PD runs on an IBM PC or equivalent, anything from an 80286 upwards. It
|
|||
|
requires 512K of conventional memory and a small amount of hard disk or
|
|||
|
floppy. Hard disk is recommended.
|
|||
|
|
|||
|
PD runs from DOS, running from Windows is not recommended.
|
|||
|
|
|||
|
|
|||
|
2. Registration
|
|||
|
|
|||
|
PD is freely distributed as a shareware version. This has a timeout of
|
|||
|
about 5 minutes, after which a registration message is displayed and the
|
|||
|
program exits. Also the logging of pager data to disk is disabled.
|
|||
|
|
|||
|
To obtain a fully functional registered copy of PD send a cheque or money
|
|||
|
order for 20.00 Pounds Sterling to:-
|
|||
|
|
|||
|
Peter Baston,
|
|||
|
7 Allerton Close,
|
|||
|
Pen-y-ffordd,
|
|||
|
Chester,
|
|||
|
CH4 0NJ,
|
|||
|
U.K.
|
|||
|
|
|||
|
When ordering please state if the shareware version of PD is already in
|
|||
|
use, and which version. Please also note that the registered software can
|
|||
|
be sent out by email, if this is required please give your email address.
|
|||
|
|
|||
|
3. Installation
|
|||
|
|
|||
|
In order to install the program copy the following files into a directory
|
|||
|
on a hard drive, or onto a floppy:-
|
|||
|
|
|||
|
PD.EXE Pocsag Decoder program
|
|||
|
PD.INI Configuration file
|
|||
|
PAGERS.INI List of pager codes (7 digit RIC's) to be logged
|
|||
|
REJECT.INI List of pager codes to reject
|
|||
|
PD200.TXT This documentation file
|
|||
|
7100MOD.TXT Notes on modifying Icom R-7100 to bring out the
|
|||
|
discriminator output.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
4. Interfacing
|
|||
|
|
|||
|
|
|||
|
The PD program requires serial POCSAG data to be applied to the CTS pin of
|
|||
|
one of the PC's COM ports. RS232 levels are required, ie at least +/- 3v.
|
|||
|
PD is insensitive to polarity, ie it doesn't matter which way up mark and
|
|||
|
space are.
|
|||
|
|
|||
|
|
|||
|
As POCSAG is transmitted as direct FSK of the VHF/UHF carrier the ideal way
|
|||
|
is to take the data direct from the discriminator, via a data slicer. The
|
|||
|
following circuit, however, has been fairly successful, taking audio
|
|||
|
directly from the receiver's speaker output:-
|
|||
|
|
|||
|
|
|||
|
0.1 uF |\ +12v
|
|||
|
---||-----------------------|- \|
|
|||
|
AF IN | |741 \
|
|||
|
---- | | /--------------------- Data Out
|
|||
|
| \ ------|+ /| | CTS (pin 5/8)
|
|||
|
| / 100K | |/-12v |
|
|||
|
| \ | | GND ------ GND (pin 7/5)
|
|||
|
GND / ----/\/\/\----
|
|||
|
| | 100K
|
|||
|
| \ N.B. Pin Numbers for com port are
|
|||
|
GND / given as x/y, where x is for a 25
|
|||
|
\ 10K way, y for a 9 way.
|
|||
|
/
|
|||
|
|
|
|||
|
GND
|
|||
|
|
|||
|
The above circuit is a Schmitt Trigger, having thresholds of about +/- 1v.
|
|||
|
If such a large threshold is not required, eg for a discriminator output,
|
|||
|
then the level of positive feedback may be reduced by either reducing the
|
|||
|
value of the 10K resistor or by increasing the value of the 100K feedback
|
|||
|
resistor.
|
|||
|
|
|||
|
The +/- 12v for the op-amp can be derived from unused signals on the COM
|
|||
|
port (gives more like +/- 10v but works fine !):-
|
|||
|
|
|||
|
|
|||
|
TxD (2/3) --------------|<-------------------------------------- -12v
|
|||
|
| |
|
|||
|
RTS (4/7) --------------|<-------- GND - -
|
|||
|
| | _ + 10uF
|
|||
|
--------->|------- - - |
|
|||
|
Diodes 1N4148 | - + 10uF GND
|
|||
|
| |
|
|||
|
DTR (20/4) ------------->|-------------------------------------- +12v
|
|||
|
|
|||
|
|
|||
|
5. Configuration
|
|||
|
|
|||
|
5.1 PD.INI
|
|||
|
|
|||
|
The PD.INI file allows the operation of PD to be configured. Any text
|
|||
|
editor can be used to edit this file. The file is divided up into sections,
|
|||
|
headed by a name in square brackets, eg [general], [functions]. In each
|
|||
|
section are parameters, set to a value with an "=" sign, eg:-
|
|||
|
|
|||
|
logbeep=100
|
|||
|
func1=alpha
|
|||
|
|
|||
|
In PD.INI, and any of the .INI files, comments may be added by starting the
|
|||
|
line with "#' eg:-
|
|||
|
|
|||
|
# This is a comment.
|
|||
|
|
|||
|
|
|||
|
5.1.1 General Parameters
|
|||
|
|
|||
|
These parameters come under the [general] heading.
|
|||
|
|
|||
|
|
|||
|
5.1.1.1 comport
|
|||
|
|
|||
|
This allows the COM port used by PD to be set. COM port 1,2,3 or 4 may be
|
|||
|
used, eg:-
|
|||
|
|
|||
|
comport=2
|
|||
|
|
|||
|
The default is COM1
|
|||
|
|
|||
|
|
|||
|
5.1.1.2 bitrate
|
|||
|
|
|||
|
This alows the bitrate of POCSAG data to be set. Allowable options are 512,
|
|||
|
1200, 2400 or auto. If auto is selected then the bit rate is determined by
|
|||
|
PD at the beginning of each transmission. Examples:-
|
|||
|
|
|||
|
bitrate=1200
|
|||
|
bitrate=auto
|
|||
|
|
|||
|
The default is auto.
|
|||
|
|
|||
|
|
|||
|
5.1.1.3 logbeep
|
|||
|
|
|||
|
This parameter allows the length of the "beep", sounded when a pager message
|
|||
|
is logged, to be set. It's format is:-
|
|||
|
|
|||
|
logbeep=<number>
|
|||
|
|
|||
|
eg:-
|
|||
|
|
|||
|
logbeep=100
|
|||
|
|
|||
|
Where <number> is the length of the beep in milliseconds. A value of zero
|
|||
|
turns off the beeping, this is the default.
|
|||
|
|
|||
|
5.1.1.4 logging (Registered Version Only)
|
|||
|
|
|||
|
This parameter turn on or off logging to a daily log file. It can take the
|
|||
|
value 0 (no logging), or 1 (enable logging). Example:-
|
|||
|
|
|||
|
logging=1
|
|||
|
|
|||
|
Daily log files have filenames of the form DD-MM-YY.log, or MM-DD-YY.log if
|
|||
|
U.S. date format is selected. All decoded pages are logged to this file. At
|
|||
|
midnight the daily log file is closed, and a new one opened.
|
|||
|
|
|||
|
The default is 0, logging off.
|
|||
|
|
|||
|
|
|||
|
5.1.1.5 log_path (Registered Version Only)
|
|||
|
|
|||
|
This parameter allows the path for the storage of log files to be set. This
|
|||
|
may be either an absolute path or may be relative to the current directory.
|
|||
|
The path must always end in a "\". Examples:-
|
|||
|
|
|||
|
# Log files stored in subdirectory "logs" off the current PD directory:
|
|||
|
log_path=logs\
|
|||
|
|
|||
|
# Log files stored at an absolute location:
|
|||
|
log_path=C:\logfiles\
|
|||
|
|
|||
|
Please note that if the directory referenced does not exist then no logging
|
|||
|
will take place.
|
|||
|
|
|||
|
The default is the current directory.
|
|||
|
|
|||
|
|
|||
|
5.1.1.6 expire (Registered Version Only)
|
|||
|
|
|||
|
This parameter allows daily log files to be automatically deleted after a
|
|||
|
given number of days. This will occur either when PD is started, or just
|
|||
|
after midnight. The format is
|
|||
|
|
|||
|
expire=<number of days>
|
|||
|
|
|||
|
eg:-
|
|||
|
|
|||
|
# Expire any daily logs over 5 days old:
|
|||
|
expire=5
|
|||
|
|
|||
|
The default is 0 (don't expire).
|
|||
|
|
|||
|
5.1.1.7 language
|
|||
|
|
|||
|
This option allows special language features to be enabled. it is currently
|
|||
|
used to enable special "umlaute" characters used in the german language.
|
|||
|
Eg:-
|
|||
|
|
|||
|
language=german
|
|||
|
|
|||
|
When this is enabled the following character translation will take place in
|
|||
|
received alphanumeric paging messages:-
|
|||
|
|
|||
|
Rx Char (decimal) Display Char (decimal) Umlaute
|
|||
|
|
|||
|
125 129 ue <20>
|
|||
|
124 148 oe <20>
|
|||
|
123 132 ae <20>
|
|||
|
126 225 ss
|
|||
|
93 154 UE <20>
|
|||
|
92 153 OE <20>
|
|||
|
91 142 AE <20>
|
|||
|
|
|||
|
The default language is english.
|
|||
|
|
|||
|
|
|||
|
5.1.1.8 accept
|
|||
|
|
|||
|
This parameter determines whether decoded addresses (RIC's) are allowed to
|
|||
|
contain corrected errors. This can have two values, 0 (don't accept errors)
|
|||
|
or 1 (accept errors). Eg:-
|
|||
|
|
|||
|
accept=0
|
|||
|
|
|||
|
The default is 0. This is recommended.
|
|||
|
|
|||
|
|
|||
|
5.1.1.9 date (Registered Version Only)
|
|||
|
|
|||
|
This parameter allows the format of the date used when writing to log files
|
|||
|
to be set. Two formats, uk or usa, are allowed, eg:-
|
|||
|
|
|||
|
# Use U.K. date format:
|
|||
|
date=uk
|
|||
|
|
|||
|
# Use U.S. date format:
|
|||
|
date=usa
|
|||
|
|
|||
|
The U.K. date format is DD/MM/YY, the U.S. date format is MM/DD/YY.
|
|||
|
|
|||
|
The default is the UK format.
|
|||
|
|
|||
|
|
|||
|
5.1.2 Function Codes
|
|||
|
|
|||
|
These parameters come under the [functions] heading. Four parameters are
|
|||
|
supported - func0, func1, func2 and func3. These allow the decoding of the
|
|||
|
pager data to be determined by the function code, transmitted in the
|
|||
|
address codeword. The format for setting these parameters is:-
|
|||
|
|
|||
|
funcx=<string>
|
|||
|
|
|||
|
Where <string> is one of:-
|
|||
|
|
|||
|
alpha - The message will be decoded as alphanumeric ASCII
|
|||
|
data.
|
|||
|
|
|||
|
numeric - The message will be decoded as BCD numeric data.
|
|||
|
|
|||
|
raw - The message will be dumped in raw form, as hex
|
|||
|
codewords.
|
|||
|
|
|||
|
auto - PD will attempt to decide whether the message is
|
|||
|
numeric or alphanumeric, and decode accordingly.
|
|||
|
|
|||
|
reject - Any pages having this function code will be
|
|||
|
rejected.
|
|||
|
|
|||
|
|
|||
|
eg:-
|
|||
|
|
|||
|
func0=raw
|
|||
|
func1=auto
|
|||
|
func2=auto
|
|||
|
func3=alpha
|
|||
|
|
|||
|
The program defaults to decoding all function codes as "alpha" data.
|
|||
|
|
|||
|
|
|||
|
5.1.3 Colours
|
|||
|
|
|||
|
These parameters come under the [colours] heading and may each be set to
|
|||
|
one of the following values:-
|
|||
|
|
|||
|
BLACK 0
|
|||
|
BLUE 1
|
|||
|
GREEN 2
|
|||
|
CYAN 3
|
|||
|
RED 4
|
|||
|
MAGENTA 5
|
|||
|
BROWN 6
|
|||
|
WHITE 7
|
|||
|
GRAY 8
|
|||
|
LIGHTBLUE 9
|
|||
|
LIGHTGREEN 10
|
|||
|
LIGHTCYAN 11
|
|||
|
LIGHTRED 12
|
|||
|
LIGHTMAGENTA 13
|
|||
|
YELLOW 14
|
|||
|
BRIGHTWHITE 15
|
|||
|
|
|||
|
These parameters are in pairs, setting the foreground and background colours
|
|||
|
for a particular screen area:-
|
|||
|
|
|||
|
status_fore/status_back Set the colours for the status line at the
|
|||
|
bottom of the screen.
|
|||
|
|
|||
|
page_fore/page_back Set the colours for the first line of a
|
|||
|
received page. This line contains the
|
|||
|
received RIC, function code, bit rate and
|
|||
|
decoding format.
|
|||
|
|
|||
|
message_fore/message_back Set the colours for the message part of a
|
|||
|
received page. Also sets the colours for
|
|||
|
the debug display, data with no errors.
|
|||
|
|
|||
|
log_fore/log_back Set the colours used to display a RIC code
|
|||
|
that appears in PAGERS.INI.
|
|||
|
|
|||
|
corrected_fore/corrected_back Set the colours in debug mode for codewords
|
|||
|
containing bit errors believed to be
|
|||
|
corrected.
|
|||
|
|
|||
|
errored_for/errored_back Set the colours in debug mode for codewords
|
|||
|
containing un-correctable errors.
|
|||
|
|
|||
|
|
|||
|
5.2 PAGERS.INI
|
|||
|
|
|||
|
This file contains a list of pager addresses to be logged and is simply a
|
|||
|
list of 7 digit RIC's. Each RIC must begin in the first column and any
|
|||
|
characters after the 7th are ignored, and may be used for comments. Also
|
|||
|
lines beginning in "#" may be used for comments. RIC codes may contain
|
|||
|
wildcards, using the "?" character. Eg:-
|
|||
|
|
|||
|
# A few pager numbers....
|
|||
|
|
|||
|
1234567 Fred's pager
|
|||
|
0012345 Joe's pager
|
|||
|
111???? Any pager number beginning "111"
|
|||
|
|
|||
|
This file may contain up to 250 addresses. Every time one of these
|
|||
|
addresses is encountered it is highlighted on the screen, a beep is sounded
|
|||
|
if configured, and the page is logged to disk with a date/time stamp. The
|
|||
|
log filename is <RIC>.LOG, eg 1234567.LOG. Wildcards are translated to
|
|||
|
underscores in filenames, eg 111____.log.
|
|||
|
|
|||
|
Please note that a page will be logged by the first match found in the
|
|||
|
file. For example if this file contained 12?????, and then 1234567 further
|
|||
|
down, then pages to RIC 1234567 would go into 12_____.log and _not_ into
|
|||
|
1234567.log. It is therefore best to put any entries containing wildcards
|
|||
|
towards the bottom of the file so that the individual entries will catch
|
|||
|
them first.
|
|||
|
|
|||
|
5.3 REJECT.INI
|
|||
|
|
|||
|
This file contains a list of pager addresses to be rejected, eg to save
|
|||
|
screen clutter. This file has the same format as PAGERS.INI, described in
|
|||
|
5.2 above.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
6. Running the Program
|
|||
|
|
|||
|
|
|||
|
6.1 Starting
|
|||
|
|
|||
|
PD is run from the DOS prompt by simply typing:-
|
|||
|
|
|||
|
PD<Enter>
|
|||
|
|
|||
|
No command line options are supported, if any are given then PD displays
|
|||
|
the message:-
|
|||
|
|
|||
|
*****************************************************
|
|||
|
*** All PD Configuration is now by editing PD.INI ***
|
|||
|
*** No Command Line Switches are Supported ***
|
|||
|
*****************************************************
|
|||
|
|
|||
|
|
|||
|
6.2 Supported Keys
|
|||
|
|
|||
|
The following keys are supported whilst PD is running:-
|
|||
|
|
|||
|
ESC Exits the program
|
|||
|
|
|||
|
F1 Toggles between NORMAL and DEBUG modes
|
|||
|
|
|||
|
SPACE BAR Toggles PAUSE mode on and off
|
|||
|
|
|||
|
N.B. PAUSE mode stops the output of paging messages to the screen. Any
|
|||
|
logging will still carry on and is not affected.
|
|||
|
|
|||
|
6.3 Status Line
|
|||
|
|
|||
|
After PD starts up it displays a status line along the bottom of the screen,
|
|||
|
with a data area below. The status line is as shown below:-
|
|||
|
|
|||
|
|
|||
|
NORMAL <20> COM1 <20> 1200 <20> REJ <20> PAUSE <20> 13-01-96.LOG 280890 <20> 100.0 <20> \ 13:50:39
|
|||
|
|
|||
|
|
|||
|
The items on the status line are described below, from left to right:-
|
|||
|
|
|||
|
* NORMAL/DEBUG indicator - shows which mode PD is currently operating in.
|
|||
|
|
|||
|
* COM port currently in use.
|
|||
|
|
|||
|
* Current POCSAG bit rate.
|
|||
|
|
|||
|
* REJ indicator - appears when a pager address matches one listed in
|
|||
|
REJECT.INI
|
|||
|
|
|||
|
* RUN/PAUSE indicator - indicates when paused by the space bar.
|
|||
|
|
|||
|
* Filename of current daily log file, and current file size.
|
|||
|
|
|||
|
* Indication of receiving efficiency. 100% indicates that all received
|
|||
|
codewords contain no errors. Any codewords containing errors, whether
|
|||
|
corrected or not, will drive this figure down.
|
|||
|
|
|||
|
* Rotating signal indicator. Appears to rotate when data is being
|
|||
|
received on the correct pin of the COM port. This is no indication of
|
|||
|
good data, just that the levels are correct.
|
|||
|
|
|||
|
* The current time from the PC's real time clock.
|
|||
|
|
|||
|
6.4 Normal Mode
|
|||
|
|
|||
|
In NORMAL mode, as long as good POCSAG data is being received, lines of
|
|||
|
the following form are displayed:-
|
|||
|
|
|||
|
RIC: <RIC code> FUNC: <func code> RATE: <bit rate> <decoding type> [auto]
|
|||
|
|
|||
|
Where:-
|
|||
|
|
|||
|
<RIC code> is the 7-digit pager address
|
|||
|
|
|||
|
<func code> is the single digit function code 0,1,2 or 3
|
|||
|
|
|||
|
<bit rate> is the data rate at which the page was received:
|
|||
|
512, 1200 or 2400
|
|||
|
|
|||
|
<decoding type> specifies how the message data is being decoded:
|
|||
|
|
|||
|
Tone - Tone - only page
|
|||
|
Numeric - BCD numeric page
|
|||
|
Alpha - ASCII alphanumeric page
|
|||
|
|
|||
|
[auto] is appended to the line if PD is making an automatic
|
|||
|
alpha/numeric decision for this function code.
|
|||
|
|
|||
|
In the case of numeric or alphanumeric pages then another line or lines of
|
|||
|
message data follow.
|
|||
|
|
|||
|
eg:-
|
|||
|
|
|||
|
RIC: 1234567 FUNC: 3 RATE: 512 Alpha:
|
|||
|
Please call 1234 - 5688
|
|||
|
RIC: 0345678 FUNC: 1 RATE: 1200 Tone
|
|||
|
RIC: 0000123 FUNC: 2 RATE: 2400 Numeric (auto):
|
|||
|
555-123-1212
|
|||
|
|
|||
|
|
|||
|
Before data is displayed in NORMAL mode the address codeword is checked for
|
|||
|
errors. If the "accept" parameter in PD.INI is set to 0 then this codeword
|
|||
|
must be error free, thus ensuring that the correct RIC is always displayed.
|
|||
|
If "accept" is set to 1 then address codewords will be accepted even if
|
|||
|
they had correctable errors. This means there is a chance that the wrong
|
|||
|
RIC will be displayed - if a large number of bit errors are present.
|
|||
|
|
|||
|
Subsequent data codewords are decoded irrespective of any errors. This
|
|||
|
means that some "garbling" of data will occur in the presence of a lot of
|
|||
|
errors. All codewords are, however, error corrected. This means that, in
|
|||
|
the presence of 1 or 2 bit errors, the orignal codeword will be recovered.
|
|||
|
|
|||
|
6.5 Debug Mode.
|
|||
|
|
|||
|
In Debug mode the batches of raw POCSAG codewords are dumped to the screen
|
|||
|
in hex form, eg:-
|
|||
|
|
|||
|
7A89C197 7A89CI97 7A89C197 7A89C197 7A89C197 7A89C197 7A89C197 7A89C197
|
|||
|
7A89C197 7A89C197 14083EE2 7A89C197 7A89C197 7A89C197 7A89C197 7A89C197
|
|||
|
|
|||
|
|
|||
|
Any codewords containing errors will be displayed in different colours, as
|
|||
|
configured in PD.INI. By default codewords containing corrected errors are
|
|||
|
displayed as yellow on white whilst codewords containing un-correctable
|
|||
|
errors are displayed as red on white.
|
|||
|
|
|||
|
The debug mode is very useful for setting up, as it gives an indication of
|
|||
|
the number of errors currently being received. The shareware version will
|
|||
|
not time out while in debug mode.
|
|||
|
|
|||
|
Please note that no logging will take place while in debug mode.
|
|||
|
|
|||
|
APPENDIX A
|
|||
|
PD Software History
|
|||
|
|
|||
|
|
|||
|
VERSION 1.02 Initial Released Version
|
|||
|
|
|||
|
|
|||
|
VERSION 2.00 Major Release
|
|||
|
|
|||
|
* Now supports 2400 baud and has auto bit-rate detection.
|
|||
|
* Will now attempt to correct up to 2 bit errors in a codeword.
|
|||
|
* Will now attempt to auto-detect numeric or alphanumeric data.
|
|||
|
* Now supports logging of all messages to daily log files.
|
|||
|
* Logging now continues whilst in PAUSE mode.
|
|||
|
* PAGERS.INI and REJECT.INI will now allow comments after pager addresses.
|
|||
|
* PAGERS.INI and REJECT.INI will now allow wildcards in pager addresses.
|
|||
|
* PAGERS.INI and REJECT.INI will now accept up to 250 entries each.
|
|||
|
* Date format may now be configured for the US market.
|
|||
|
* Will now correctly display "umlaute" characters used in German.
|
|||
|
* Screen colours may now be configured.
|
|||
|
|
|||
|
|
|||
|
<<<<<=====>>>>>
|
|||
|
|