I grabbed this from VO1CPU's most excelent page on the non-PSX-200's and adapted it for my use. I program the radio by removing the X2444p serial eeprom from its socket on the top of the radio. Then I use a standard programmer to read/write the data. If you have a normal EPROM programmer it may have the ability and you can avoid the mess of the GE programming methods. I have plagerized VO1CPU's document to reflect what I have added to support this type of GE Phoenix without the GE programmer. A special note, the Bytes are listed with a number to the left that represents the GE programmer but NOT a normal Eprom programmer. The halfs of the nibbles are reversed due to the way the 16bit words are handled. -------------------------------------------------------------------------------------- GE PSX-200 Programming. Refer to document LBI31266 ? not sure for PSX-200 First compute N, A and R as follows. Example 1: 146.52 receive Add the IF frequency 146.52 + 45 = 191.52 Divide by the channel spacing 191.52 / .005 = 38304 Convert to binary 38304 = 1 0 0 1 0 1 0 1 1 0 1 0 0 0 0 0 You get N and A N9 N8 N7 N6 N5 N4 N3 N2 N1 N0 A5 A4 A3 A2 A1 A0 A6 is always 0 Example 2: 146.52 transmit Divide by the channel spacing 146.52 / .005 = 29304 Convert to binary 29304 = 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 0 You get N and A N9 N8 N7 N6 N5 N4 N3 N2 N1 N0 A5 A4 A3 A2 A1 A0 A6 is always 0 R2, R1, R0 0 0 1 Ref. oscilator 13.2 MHz, channel spacing .0041666 (.0125 UHF) 0 1 0 Ref. oscilator 13.2 MHz, channel spacing .005 (VHF & Most common) 0 1 1 Ref. oscilator 13.2 MHz, channel spacing .00625 1 0 1 Ref. oscilator 13.8 MHz, channel spacing .0041666 (.0125 UHF) 1 1 0 Ref. oscilator 13.8 MHz, channel spacing .005 1 1 1 Ref. oscilator 13.8 MHz, channel spacing .00625 Each frequency requires 8 4 bits nibbles as follows: Receive: Byte 00: 1 : N9, R2, R1, R0 (left half of nibble) 0 : Channel Guard type (See table 2) (Right half of nibble) Byte 01: 3 : N8, N7, N6, N5 (Left half of nibble) 2 : N4, N3, N2, N1 (Right half of nibble) Byte 02: 5 : N0, 0 , A5, A4 (1111 if channel not used) A6 always 0 4 : A3, A2, A1, A0 Byte 03: 7 : Channel Guard code (See table 3 HEX CODE 7) 6 : Channel Guard code (See table 3 HEX CODE 6) So 145.09 would be input in to a programmer as: A0 29 02 00 145.05 would be input in to a programmer as: A0 28 BA 00 Transmit: Byte 0: 1 : N9, 0, 0, 0 0 : CCT (See table 4) Byte 1: 3 : N8, N7, N6, N5 2 : N4, N3, N2, N1 Byte 2: 5 : N0, 0 , A5, A4 (1111 if channel not used) A6 always 0 4 : A3, A2, A1, A0 Byte 03: 7 : Channel Guard code (See table 3 HEX CODE F) 6 : Channel Guard code (See table 3 HEX CODE E) So 145.09 would be input to a programmer as: 08 E2 9A 00 (cct=30secs) 145.05 would be input to a programmer as: 08 E2 92 00 (cct=30secs) ? Please note special codes for memory location 0F1h (number of channels in bank A), ? 019h (number of channels in bank B) and 011h CCT time, (See instructions). Once you have all this data written down you can then convert it to the format used by a normal serial eeprom programmer (MCT's MOD-EMP Univeral programmer works well). X2444p mode A/B chip has the memory layout of: Mode A receive: 00h - 03h Mode B receive: 04h - 07h Mode A Trans : 08h - 0Bh Mode B Trans : 0Ch - 0Fh Example of a read of a X2444p chip with an Eprom programmer is: 00h: A0 29 02 00 A0 27 B6 00 Receive 08h: 08 E2 9A 00 08 E1 8E 00 Transmit Mode A Mode B simplex Simplex 145.09 144.39 cct 30secs cct 30secs Example of a x2444p chip made by an eprom programmer is: 00h: A0 2B AE 00 A0 28 BA 00 Receive 08h: 0D E5 06 00 08 E2 92 00 Transmitt Mode A Mode B 146.91x 145.05 146.31r simplex cct 3mins cct 30secs psx200.txt tpe 6/23/00 ke3ht@lmrgroup.com