Creating Radio Address Data

Genpgm.exe creates the radio address data file that tells the radio card which addresses to use. Genpgm.exe is used with Dopgm.exe, which loads the radio address data file into the radio card.

    To program your radio hardware

  1. Create a file on your system that contains the programming information that you want to use.
  2. Run Genpgm.exe, and pass it the name of your file through the /PGM= switch.

    Specify the output file name with the /OUT= switch.

  3. Copy the output file to the Windows CE directory on your Windows CE–based device using the Windows CE Services utilities.
  4. Run Dopgm.exe on your Windows CE–based device, and pass it the name of your .bin file through the /PGM= switch.

When you restart your machine, repeat steps 4 and 5.

When you run Genpgm.exe, it creates the programming data file in an encrypted format using the entry identification (EID) of the radio hardware as the key. If you do not want the file to be encrypted, use the switch "/KTYPE=N" to indicate encryption should not be performed.

The programming data file follows a specific format. It consists of a series of programming and deprogramming clauses for keys, addresses, and carriers. Any type of block can be repeated to program multiple keys, addresses, or carriers. Comments can be interspersed; a comment begins with a semicolon and extends to the end of the line. Each clause contains a set of parameters and values. Values consist of either strings or byte values. The following table shows the formats of each of these.

Type
Format
Examples
Byte value Decimal integer from 0 through 255, which must not have a leading 0 0 1 60 219 255
  Octal integer from 0 through 0377, which must begin with 0 0 01 074 0333 0377
Hexadecimal integer from 0x0 through 0xff, which must begin with 0x 0x0 0x1 0x3c 0xff
Single-byte character, which must be enclosed in single quotation marks 'c' 'A' ';' '#' ' '
String Text within quotation marks "hello, world",

"etaoin shrdlu"

  Comma-separated list of byte values 0x68, 101, 0154, 0x6c, 'o'

The following example of a definition file for radio address data shows its syntax. Any type of block can be repeated to program multiple keys, addresses, or data structures about wireless service providers.

PROGRAM_KEY
KeyNumber=<ByteValue>
AlgCode=<ByteValue>
KeyTag=<String>
KeyValue=<String>
END

PROGRAM_ADDRESS
AddressNumber=<ByteValue>
Status=<ByteValue>            ;ENABLE=0x01, PRIORITY=0x02, AC_ONLY=0x04
ExpirationDate=CC,YY,MM,DD
AddressTag=<String>
KeyTag=<String>
AddressName=<String>
AddrDescription=<String>
AddressInfo=<String>
END

PROGRAM_CARRIER
RxFrequency=ByteValue        ; Reception frequency
UserId=<String>                ; User PIN or equivalent
CarrierName=<String>
CarrierDescription=<String>
END

; Use either KeyNumber or KeyTag.
UNPROGRAM_KEY
KeyNumber=<ByteValue>
KeyTag=<String>
END

; Use either AddressNumber or AddressTag.
; If there are any keys associated with the address,
; and if they are not referenced by another address, they are deleted.
UNPROGRAM_ADDRESS
AddressNumber=<ByteValue>
AddressTag=<String>
END

; Use the CarrierName parameter to select which carrier to delete.
UNPROGRAM_CARRIER
CarrierName=<String>
END

The following example of a radio address definition file shows an input file for Genpgm.exe that, when used as input for Genpgm.exe, sets up a key and two addresses.

PROGRAM_KEY
KeyNumber=0x02
AlgCode=0x22
KeyTag="Key234"
KeyValue=0x20,0x21,0x22,0x23
END

PROGRAM_ADDRESS
AddressNumber=0x0
Status=0x01             ; ENABLE=0x01, PRIORITY=0x02, AC_ONLY=0x04
; The address will expire on August 12, 1999. August is a single digit,
; not a double digit, 8 not 08, because the zero would be interpreted
; as making it octal.
ExpirationDate=19,99,8,12        
AddressTag="Addr1"
KeyTag="Key1"
AddressName="Test Addr1"
AddrDescription="Address used for personal messaging"
AddressInfo="AddrInfo"
END

If you save this example of a radio address definition file in a file named Card.dat, then run Genpgm.exe, the file Card.bin is created. It contains the address programming. The following example of a command line shows how to do this.

    genpgm.exe /I=card.dat