mirror of
https://github.com/fdiskyou/Zines.git
synced 2025-03-09 00:00:00 +01:00
1046 lines
41 KiB
Text
1046 lines
41 KiB
Text
![]() |
==Phrack Magazine==
|
||
|
|
||
|
Volume Seven, Issue Forty-Eight, File 7 of 18
|
||
|
|
||
|
|
||
|
TANDY / RADIO SHACK CELLULAR PHONES
|
||
|
|
||
|
REBUILDING ELECTRONIC SERIAL NUMBERS AND OTHER DATA
|
||
|
|
||
|
|
||
|
By Damien Thorn
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
LEGAL CRAP
|
||
|
|
||
|
(mandated by our cheap-suit, can't afford cigars, polyester-pants-wearing,
|
||
|
no-practice-having, almost dis-barred, old-fart legal counsel who only charges
|
||
|
us $20 / hour because he meant to retire when he was 70 but lived a few years
|
||
|
longer than he expected...hell, we love him!)
|
||
|
|
||
|
Contents copyright 1994, 1995 Phoenix Rising Communications.
|
||
|
Software copyright 1993, 1994, 1995 as indicated.
|
||
|
|
||
|
All Rights Reserved. Distribution of contents in hard-copy form is forbidden.
|
||
|
Redistribution in electronic form is permitted only as outlined in the Phrack
|
||
|
licensing agreement, provided this article is not segregated from the other
|
||
|
editorial contents of Phrack #48.
|
||
|
|
||
|
Use caution when rebuilding corrupt serial numbers, and avoid lending your
|
||
|
talents to further the goals of unscrupulous people.
|
||
|
|
||
|
Altering the serial number of a cellular transceiver is a violation of the
|
||
|
FCC rules, and the U.S. Secret Service is charged with the responsibility
|
||
|
of investigating fraudulent activity.
|
||
|
|
||
|
All of this material was developed in-house and not provided or
|
||
|
endorsed by the manufacturer. Brand names and trademarks are used for
|
||
|
identification purposes only and are the property of their respective
|
||
|
owners. Use of same within this article definitely does not imply agreement
|
||
|
with or endorsement of the material presented, and probably aggravates them
|
||
|
to no end. There are no guarantees or warranties with regard to the accuracy
|
||
|
of this article. Although we've done the best job that we can, we may be
|
||
|
wrong. Happens all the time. If you damage a phone or inadvertently start
|
||
|
a global thermonuclear war, that's your problem. Don't come crying to us, or
|
||
|
make us fork over another twenty bucks to the old shyster. What you do with
|
||
|
this information is your responsibility.
|
||
|
|
||
|
|
||
|
INTRODUCTION
|
||
|
|
||
|
|
||
|
While manufacturers publish service manuals for their cellular
|
||
|
transceivers, they have an annoying habit of omitting certain
|
||
|
data pertaining to memory devices and the arrangement of the data
|
||
|
stored inside them. Since this stored information includes the
|
||
|
electronic serial number (ESN), the lack of documentation can
|
||
|
easily be excused as a way to avoid unwittingly facilitating
|
||
|
fraud.
|
||
|
|
||
|
The drawback to the 'security through obscurity' approach is that
|
||
|
service technicians who have a legitimate need to reprogram these
|
||
|
memory devices are unable to do so. The Nokia-designed
|
||
|
transceivers discussed in this article are an excellent example.
|
||
|
Since the ESN is stored in the same electrically-erasable
|
||
|
programmable read-only memory (EEPROM) device as the numeric
|
||
|
assignment module (NAM) information, corruption of the data can
|
||
|
be catastrophic to the operation of the phone.
|
||
|
|
||
|
Since the handset programming mode of these Nokia units actually
|
||
|
write-enables the memory device to store the alterable parameters,
|
||
|
an errant pulse from the microprocessor, dropped bits or supply
|
||
|
voltages falling out of tolerance can cause the ESN or checksum
|
||
|
to become overwritten or otherwise rendered useless. Should this
|
||
|
occur, dealers have had little recourse but to ship the
|
||
|
transceiver back to the factory for repair. Until now, that is.
|
||
|
|
||
|
The goal of Phoenix Rising Communications in producing this
|
||
|
documentation is to empower technicians to do the job they have
|
||
|
been educated and hired to perform. This guide to Tandy and
|
||
|
Radio Shack cellular phones will enable the technician to rebuild the
|
||
|
corrupt data within this series of transceivers with confidence.
|
||
|
|
||
|
The information in this article was developed from the installed
|
||
|
and transportable versions of the most commonly purchased phones
|
||
|
from Radio Shack stores. These units were sold for many years,
|
||
|
and finally replaced last year with a new, redesigned model. The
|
||
|
data presented here can probably be applied to certain compatible
|
||
|
Nokia transceivers as indicated later in the text.
|
||
|
|
||
|
|
||
|
CHAPTER 1
|
||
|
|
||
|
This publication is designed to provide supplemental information
|
||
|
to assist in the servicing of cellular mobile telephones
|
||
|
manufactured by Tandy Corporation under license from the Nokia Corporation.
|
||
|
It is not meant to be a replacement for the factory service manual.
|
||
|
Any shop needing to perform component level repairs should
|
||
|
definitely obtain the factory documentation from Tandy National
|
||
|
Parts.
|
||
|
|
||
|
Our primary goal is to explain the contents of the numeric
|
||
|
assignment module, or NAM. In these particular phones, both the
|
||
|
NAM parameters and the electronic serial number (ESN) are stored
|
||
|
within the same electrically erasable programmable read-only
|
||
|
memory (EEPROM) device.
|
||
|
|
||
|
The problem inherent with this engineering decision is that the
|
||
|
ESN stored within this chip is not necessarily permanent. Since the
|
||
|
chip can be erased or reprogrammed, certain circumstances could
|
||
|
possibly cause the ESN to become corrupt. These include improper
|
||
|
signals from the microprocessor, induced currents or a power
|
||
|
interruption during NAM programming as the write cycle is taking
|
||
|
place.
|
||
|
|
||
|
Since the available service literature does not describe the
|
||
|
functions of this serial EEPROM or the data contained within,
|
||
|
service personnel would have to return the transceiver to the
|
||
|
manufacturer for service. This is not cost effective in terms of
|
||
|
time or money for either the shop or cellular customer.
|
||
|
|
||
|
Technicians who invest a little time to become familiar with the
|
||
|
data stored within the NAM circuitry, including the placement of
|
||
|
the ESN and checksum byte can service these types of problems
|
||
|
in-house and with little difficulty.
|
||
|
|
||
|
Basic instructions for peaking the transceiver's RF sections have
|
||
|
also been included herein as a convenience. While the phone is
|
||
|
open and on the test bench, the customer's transceiver should
|
||
|
also be given a quick check for proper alignment.
|
||
|
|
||
|
EQUIPMENT REQUIRED
|
||
|
|
||
|
Other than basic hand tools, disassembly of the phone requires a
|
||
|
soldering iron with a medium sized tip and a vacuum de-soldering
|
||
|
tool. Good size solder removal braid may be used in conjunction
|
||
|
with, or in lieu of the de-soldering tool.
|
||
|
|
||
|
To correct data that has become corrupted within the EEPROM, a
|
||
|
programming device is required capable of reading and burning an
|
||
|
8-pin DIP integrated circuit. One such inexpensive device is
|
||
|
listed in appendix III.
|
||
|
|
||
|
An individual who is familiar with the memory device involved has
|
||
|
written a software program in the BASIC language to allow the
|
||
|
programming of this chip via the parallel port of an
|
||
|
IBM-compatible personal computer. The source code for this program
|
||
|
can be found in the appendix, and is provided as a reference only. Such
|
||
|
software is subject to the peculiarities of the host PC and
|
||
|
therefore cannot be recommended for use in place of a standard PROM
|
||
|
programmer. Older versions of GWBASIC are preferred to Microsoft's
|
||
|
current QBASIC interpreter.
|
||
|
|
||
|
MODELS COVERED
|
||
|
|
||
|
The information presented is believed to cover all of the installed
|
||
|
and transportable (bag phone) cellular transceivers manufactured
|
||
|
by the Tandy Corporation under license from the Nokia Corporation up
|
||
|
until about a year ago.
|
||
|
|
||
|
Tests have been conducted on a random selection of these phones
|
||
|
with manufacture dates ranging from 1989 through early 1994. All
|
||
|
versions of the "TP" firmware through January, 1994 should be
|
||
|
supported.
|
||
|
|
||
|
Although no house-branded OEM Nokia transceivers have been
|
||
|
tested, we have surmised that this information is applicable to several
|
||
|
models based on the same or a similar design. These models
|
||
|
include the Nokia LX-11, M-11, M-10 and the Nokia-Mobira P4000 (PT612).
|
||
|
Some of these units, like the very old Radio Shack equivalents,
|
||
|
will require a service handset to program. More on that in the
|
||
|
next issue of Phrack.
|
||
|
|
||
|
HAND-HELD UNITS
|
||
|
|
||
|
Only one of the hand-held cellular phones previously sold through
|
||
|
Radio Shack utilizes a discrete surface-mounted integrated
|
||
|
circuit to store the ESN and NAM parameters. If you have the capability
|
||
|
to read and program this SOIC 93C46 memory device you may be able to
|
||
|
extrapolate the PROM dumps in this guide to work with this phone.
|
||
|
|
||
|
Due to the difficulty in disassembling this unit and the delicate
|
||
|
nature of the surface-mounted EEPROM, the reader is cautioned
|
||
|
against attempting to service these in-house.
|
||
|
|
||
|
DISASSEMBLY
|
||
|
|
||
|
Prior to disassembling the transceiver, all antenna and cables,
|
||
|
including the handset, should be disconnected from the jacks on
|
||
|
the unit.
|
||
|
|
||
|
To aid in disassembly and component location, the original
|
||
|
hard-copy version of this publication contained several pages of
|
||
|
photographs. While the hard-copy version is available (see end of
|
||
|
article), you will hopefully be able to figure out what we're talking about
|
||
|
without them.
|
||
|
|
||
|
Disassembly begins by snapping the plastic end panel from the
|
||
|
black transceiver cover. Some units just pop up and off, while others
|
||
|
have two small plastic tabs on each side that must be depressed
|
||
|
free the end panel for removal.
|
||
|
|
||
|
With the end panel removed, the top plastic cover is now free to
|
||
|
slide off. With this cover removed, the metal transceiver itself
|
||
|
can be dumped from the remaining plastic housing by turning it
|
||
|
upside down, or pulling up on the metal heat sink assembly that
|
||
|
comprises one side of the transceiver unit.
|
||
|
|
||
|
There is a metal shield on each side of the transceiver (top and
|
||
|
bottom.) One is a solid piece of thin sheet metal, and the other
|
||
|
is broken up in to smaller, individual shields and soldered to
|
||
|
the transceiver chassis. The shield that needs to be removed is the
|
||
|
solid one. It is only held in place with the friction grips
|
||
|
along the edges, and can be pried off with your fingers.
|
||
|
|
||
|
Once the shield is removed from the proper side of the
|
||
|
transceiver, the solder side of the logic board will be exposed.
|
||
|
This board must be removed to gain access to the component side. Take
|
||
|
static precautions so as not to fry the CMOS silicon that is currently
|
||
|
hidden from view.
|
||
|
|
||
|
Other than several connectors that mate between the two boards,
|
||
|
the board is usually held in place by several blobs of solder spaced
|
||
|
along the edge of the board. These small 'solder welds' serve as
|
||
|
a ground bond between the board and the transceiver chassis, and
|
||
|
are not electrically necessary under normal circumstances.
|
||
|
|
||
|
Once the solder ground bonds have been melted and removed with a
|
||
|
de-soldering tool or solder wick, use a pair of needle-nose pliers
|
||
|
to gently bend back the small metal tabs holding the circuit
|
||
|
board in place.
|
||
|
|
||
|
Before proceeding, inspect the foil side of the board to ensure
|
||
|
that no solder has splashed on the board during de-soldering, and
|
||
|
that the foil traces where the work was performed are still
|
||
|
intact. This last step is where most trouble arises. These boards are
|
||
|
delicate, and a heavy hand while prying or bending will almost
|
||
|
ensure that a trace or five will be transected when the tool
|
||
|
slips. If this happens, resolder the traces to undo the damage.
|
||
|
|
||
|
At this point the logic board is held in place only by pins on
|
||
|
the transceiver board sticking up in to sockets on the logic board.
|
||
|
Gripping the edges of the logic board with your fingers and
|
||
|
pulling straight up will disengage the connectors and allow the logic
|
||
|
board to pull free of the transceiver. Slightly rocking the board from
|
||
|
each side may aid in the removal. Do not grip the board with
|
||
|
pliers or damage can result to the small chip resistors and other
|
||
|
components mounted on the solder side of the board.
|
||
|
|
||
|
Once dislodged, you'll have two separate circuit boards.
|
||
|
|
||
|
THE LOGIC BOARD
|
||
|
|
||
|
The board that supplies logic and control functions for the
|
||
|
cellular mobile telephone is easily identifiable by the
|
||
|
microprocessor and 27C512 EPROM containing the operating
|
||
|
firmware. The EPROM's erase window is covered by a protective sticker
|
||
|
that identifies the firmware version stored therein. Within the last
|
||
|
few years, the version has ranged from TP-2 through TP-8.
|
||
|
|
||
|
Also on this board is the serial EEPROM where the ESN and NAM
|
||
|
parameters are stored. This chip is an 8-pin DIP located in a
|
||
|
socket near pin #1 of the NEC microprocessor. It is usually
|
||
|
covered with a small paper sticker bearing the last few digits of
|
||
|
the serial number stored inside.
|
||
|
|
||
|
While security experts may blast Nokia for designing a phone that
|
||
|
stores the ESN in a socketed chip, and then says "here I am" by
|
||
|
placing a sticker on it, this is a dream come true for any
|
||
|
technician facing issues of data corruption.
|
||
|
|
||
|
THE SERIAL EEPROM
|
||
|
|
||
|
The Serial EEPROM containing all of this data is a PCD8572 (or
|
||
|
85C72) manufactured by Microchip Technology, Inc.
|
||
|
|
||
|
This 8-pin device is a 1k (128x8) CMOS serial electrically
|
||
|
erasable PROM. The pin configuration for the device can be found in the
|
||
|
appendix.
|
||
|
|
||
|
Power is supplied to this chip only when the microprocessor is
|
||
|
performing a read or write operation. Transistor Q115 (surface
|
||
|
mounted to the underside of the logic board right about in the
|
||
|
middle) switches the supply voltage on and off. Should power be
|
||
|
interrupted during the write cycle, the ESN may become corrupt.
|
||
|
|
||
|
REBUILDING THE ESN
|
||
|
|
||
|
To replace the damaged serial number, note the unit's serial
|
||
|
number from the cellular service agreement or the phone itself.
|
||
|
The ESN (in decimal) is located on a white paper sticker applied to the
|
||
|
side of the metal transceiver chassis. It is also stamped into the
|
||
|
plastic model identification plate on one side of the plastic
|
||
|
outer housing.
|
||
|
|
||
|
For reprogramming, the ESN must be converted to hex. A scientific
|
||
|
calculator or any number of public domain computer programs will
|
||
|
simplify the task.
|
||
|
|
||
|
CONTENTS OF NAM
|
||
|
|
||
|
Once the original serial number has been determined, carefully
|
||
|
remove the 8572 EEPROM from the socket and place it in the
|
||
|
adapter required by your PROM programmer. Reading the contents of the
|
||
|
chip, you'll see data as depicted below.
|
||
|
|
||
|
Note that these data dumps are simulated for illustrative purposes.
|
||
|
The ESN and encoded MIN bytes are not legitimate numbers, so don't
|
||
|
bother 'testing' them.
|
||
|
|
||
|
The first five bytes of data contain the security code. These
|
||
|
bytes are the hex values representing ASCII characters 0 through
|
||
|
9, thus represented as "3X" where "X" is the actual digit of the
|
||
|
security code. A factory security code of 1 2 3 4 5 would be
|
||
|
represented in bytes 00 through 04 as follows:
|
||
|
|
||
|
31 32 33 34 35
|
||
|
|
||
|
Since you will require the security code to enter handset
|
||
|
programming mode, please note the current security code or
|
||
|
program these bytes with your shop's standard default.
|
||
|
|
||
|
UNDERSTANDING ADDRESSES
|
||
|
|
||
|
Some cellular technicians have little experience in the digital
|
||
|
world. Service monitors and watt-meters are expensive and wonderful
|
||
|
devices, but sometimes you need to do a little more than tweak a pot
|
||
|
to fix a phone. The digital-literate can skip this oversimplified
|
||
|
explanation.
|
||
|
|
||
|
To assist those in reading the locations of the various bytes in the EEPROM,
|
||
|
understand that each line (as usually displayed on a programmer) contains
|
||
|
sixteen (16) bytes. The first line begins with byte 00, then 01, 02, 03,
|
||
|
04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E and finally 0F.
|
||
|
|
||
|
The second line begins with 10, then 11, 12, 13, 14, 15, 16, 17,
|
||
|
18, 19, 1A, 1B, 1C, 1D, 1E, and 1F as the last byte of the line.
|
||
|
The third line increments the same way, except as byte 30, 31,
|
||
|
etc., to 3F. You now know how to count in base 16 (hex)!
|
||
|
|
||
|
As an example, the locations used by the phone end at byte 3D,
|
||
|
which contains 00 in the example below. Beginning with the next
|
||
|
byte (3E), a repetitive pattern of alternating values of AA and
|
||
|
55 are stored. This is just 'test' data and is never read by the
|
||
|
phone. The chip itself ends at byte 7F, and your PROM programmer
|
||
|
may display FF following byte 7F to indicate the non-existence of
|
||
|
these locations in the chip.
|
||
|
|
||
|
|
||
|
8572 EXAMPLE DATA DUMP
|
||
|
|
||
|
|
||
|
0000 31 32 33 34 35 0A FF 21 A5 38 25 82 0F 25 17 1A
|
||
|
0010 00 00 00 00 24 15 B1 C3 24 04 A3 21 16 2D 11 AA
|
||
|
0020 0A 00 00 64 6C B3 32 00 27 00 01 01 11 11 11 11
|
||
|
0030 11 08 4D 01 0F 01 0F 00 04 00 00 00 FF 00 AA 55
|
||
|
0040 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55
|
||
|
0050 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55
|
||
|
0060 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55
|
||
|
0070 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55
|
||
|
|
||
|
|
||
|
THE CRUCIAL SERIAL NUMBER
|
||
|
|
||
|
The hex ESN for any given phone consists of four bytes, as we use
|
||
|
the term here. Technically it is eight bytes (in hex, 32 bits if
|
||
|
expressed in binary form), but we're referring to a 'byte' as a two-digit
|
||
|
hex number, rather than each digit (byte) as a single entity. For our
|
||
|
example, we're using the fictitious ESN of A521FF0A. All Radio Shack
|
||
|
phones will have an ESN beginning with A5 hex. This is the "manufacturers
|
||
|
code" prefix that has been assigned to Tandy.
|
||
|
|
||
|
Breaking the ESN into four bytes as viewed on the PROM programmer,
|
||
|
the ESN would appear as:
|
||
|
|
||
|
A5 21 FF 0A
|
||
|
|
||
|
Refer back to the example dump of the data within the 8572 IC.
|
||
|
Immediately following the security code is the ESN stored in
|
||
|
reverse order. With the security code occupying bytes 00 to 04,
|
||
|
the ESN is located in bytes 05, 06, 07 and 08. Byte 09 contains
|
||
|
the value 38. It should always contain 38.
|
||
|
|
||
|
In the example, beginning with byte 05 you can read the ESN (in
|
||
|
reverse sequence) as:
|
||
|
|
||
|
0A FF 21 A5
|
||
|
|
||
|
The examples below will assist you in visualizing the bytes
|
||
|
containing the security code and the electronic serial number.
|
||
|
The programming and placement of these two crucial pieces of data is
|
||
|
fairly straight forward. Using the buffer editor function of the
|
||
|
PROM programmer, you can simply type over the garbage that may be
|
||
|
present in these locations with the correct values for the
|
||
|
security code and the ESN. Double check your data entry!
|
||
|
|
||
|
OTHER ADDRESSES
|
||
|
|
||
|
The entire NAM data is stored in the remaining locations of this
|
||
|
chip. Bytes 0A, 0B and 0C contain the firmware revision date,
|
||
|
and bytes 0D - 0F contain the installation date as programmed via the
|
||
|
handset programming mode.
|
||
|
|
||
|
Other bytes contain the encoded Mobile Identification Number
|
||
|
(MIN), Station Class Mark (SCM), etc.
|
||
|
|
||
|
These various bytes do not need to be reprogrammed through your
|
||
|
PROM burner, as they can all be corrected via handset
|
||
|
programming. Only the security code and ESN must be properly reprogrammed
|
||
|
directly to the chip itself. For more information on the locations
|
||
|
of this other data, refer to the source code in Appendix A. It
|
||
|
allows you to see where (and how) this other data is stored within
|
||
|
the NAM.
|
||
|
|
||
|
The last item to program is the checksum.
|
||
|
|
||
|
|
||
|
THE SECURITY CODE: BYTES 00 - 04
|
||
|
|
||
|
0000 31 32 33 34 35 XX XX XX XX XX XX XX XX XX XX XX
|
||
|
|
||
|
|
||
|
THE ESN: BYTES 05 - 08
|
||
|
|
||
|
0000 XX XX XX XX XX 0A FF 21 A5 XX XX XX XX XX XX XX
|
||
|
|
||
|
|
||
|
LOCATING THE CHECKSUM
|
||
|
|
||
|
There is a one byte device checksum stored within the 8572 that
|
||
|
is used by the phone to check the integrity of the data stored
|
||
|
therein. The checksum is located at byte 3D, indicated by "XX"
|
||
|
in the example below.
|
||
|
|
||
|
The checksum is derived from all the data stored in the NAM, not
|
||
|
just the ESN. Computing it is relatively easy as it is simply
|
||
|
the sum (in hex) of all the values from bytes 00 through 3C as
|
||
|
underlined below.
|
||
|
|
||
|
Assuming the PROM programmer has a checksum function, you can
|
||
|
enter the beginning address as 0000 and the ending address as 003C.
|
||
|
The software will add all of the values between these locations and
|
||
|
give you the sum. The alternative is to add the numbers manually
|
||
|
using the hex mode of a scientific calculator. Either way, adding
|
||
|
the hex values of all the bytes between 00 and 3C of our example yields
|
||
|
a sum of 0B5E.
|
||
|
|
||
|
The least significant two-digit byte is the actual device
|
||
|
checksum that would be programmed in location 3D. In our example, the
|
||
|
least significant half is 5E. Ignoring the most significant half of
|
||
|
the sum (0B), a value of 5E must be programmed to location 3D.
|
||
|
|
||
|
Note that the checksum will be recomputed and change after
|
||
|
handset programming. When the MIN or other data is changed, it alters
|
||
|
the values in various bytes. The checksum encompasses all of the
|
||
|
data stored within the chip used by the transceiver's firmware.
|
||
|
|
||
|
CHECKSUM LOCATION
|
||
|
|
||
|
0000 31 32 33 34 35 0A FF 21 A5 38 25 82 0F 25 17 1A
|
||
|
0010 00 00 00 00 24 15 B1 C3 24 04 A3 21 16 2D 11 AA
|
||
|
0020 0A 00 00 64 6C B3 32 00 27 00 01 01 11 11 11 11
|
||
|
0030 11 08 4D 01 0F 01 0F 00 04 00 00 00 FF XX AA 55
|
||
|
0040 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55
|
||
|
0050 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55
|
||
|
0060 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55
|
||
|
0070 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55
|
||
|
|
||
|
|
||
|
BYTES SUMMED TO DERIVE CHECKSUM
|
||
|
|
||
|
0000 31 32 33 34 35 0A FF 21 A5 38 25 82 0F 25 17 1A
|
||
|
0010 00 00 00 00 24 15 B1 C3 24 04 A3 21 16 2D 11 AA
|
||
|
0020 0A 00 00 64 6C B3 32 00 27 00 01 01 11 11 11 11
|
||
|
0030 11 08 4D 01 0F 01 0F 00 04 00 00 00 FF .. .. ..
|
||
|
0040 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
|
||
|
0050 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
|
||
|
0060 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
|
||
|
0070 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
|
||
|
|
||
|
DEFAULT VALUES
|
||
|
|
||
|
In the event that all of the data stored within the NAM becomes
|
||
|
corrupt, the technician will need to program the security code,
|
||
|
the ESN, and certain default data values to allow the phone to power
|
||
|
up. Once powered up, all of the other data can be automatically
|
||
|
reconstructed by the phone using the handset programming mode.
|
||
|
|
||
|
Since the factory does not provide any information about the
|
||
|
contents of the 8572 EEPROM, we are unsure of the function of
|
||
|
this 'default data.' It seems to have little significance.
|
||
|
|
||
|
The underlined bytes depicted below are fairly typical. Ideally
|
||
|
the technician should compare the contents of an operational
|
||
|
phone with equivalent firmware to determine the values for the
|
||
|
underlined locations, but if this is not possible then the values
|
||
|
provided in the example may suffice.
|
||
|
|
||
|
Once these defaults have been programmed in the proper locations,
|
||
|
and the ESN and security code have been reconstructed, compute
|
||
|
the checksum and store it in address 3D. Temporarily reassemble the
|
||
|
phone and apply power. The unit should power up and complete it's
|
||
|
self-test which will include the operation where the microprocessor
|
||
|
computes the NAM checksum and compares it to the value stored in
|
||
|
location 3D.
|
||
|
|
||
|
Assuming the self-diagnostics pass, the remaining data can now be
|
||
|
reconstructed through normal handset programming.
|
||
|
|
||
|
The handset programming template applicable to most of these
|
||
|
units is located immediately following the appendix detailing the chip
|
||
|
programming software included for reference purposes.
|
||
|
|
||
|
|
||
|
DEFAULT DATA VALUES
|
||
|
|
||
|
0000 XX XX XX XX XX XX XX XX XX 38 XX XX XX XX XX XX
|
||
|
0010 00 00 00 00 XX XX XX XX XX XX XX XX XX XX XX XX
|
||
|
0020 XX XX XX XX XX XX XX 00 27 00 01 01 11 11 11 11
|
||
|
0030 11 08 4D 01 0F 01 0F 00 04 00 00 00 FF XX AA 55
|
||
|
0040 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55
|
||
|
0050 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55
|
||
|
0060 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55
|
||
|
0070 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55
|
||
|
|
||
|
ADDITIONAL NOTES
|
||
|
|
||
|
As discussed, the parallel port programming software interface
|
||
|
has a few quirks, most involving the programming voltage supplied to
|
||
|
the chip. If all else fails, and a PROM burner is not available,
|
||
|
take the supply voltage (Vcc) directly from the logic board.
|
||
|
|
||
|
Run test lead jumpers from pins #4 and #8 of the IC socket on the
|
||
|
logic board that held the 8572 EEPROM and connect to the
|
||
|
respective pins on the socket attached to the cable to be used for
|
||
|
programming. Turn the board over and locate surface mount
|
||
|
transistor Q115 which switches the supply voltage to the IC
|
||
|
socket on and off.
|
||
|
|
||
|
This small chip transistor is directly to the left of pin #8 (of
|
||
|
the 8572 socket) and can be positively identified by the circuit
|
||
|
trace from socket pin #8 leading directly to the emitter of Q115.
|
||
|
|
||
|
By examining this area of the board, you can determine which of
|
||
|
the other two traces connects to the transistor's collector.
|
||
|
Jumpering the traces and shorting the collector and emitter simply
|
||
|
provides a constant, conditioned voltage supply to the socket designed to
|
||
|
power the 8572 in programming mode. It may also be necessary to cut the
|
||
|
trace to the base of Q115.
|
||
|
|
||
|
Once the chip has been programmed with the software, restore the
|
||
|
integrity of the cut trace to the base of Q115 and remove the
|
||
|
short between the collector and emitter.
|
||
|
|
||
|
USING THE SOFTWARE
|
||
|
|
||
|
The Cellular Data Repair Utility software requires that you first
|
||
|
create a small text file using an ASCII text editor such as DOS's
|
||
|
"EDIT" utility program.
|
||
|
|
||
|
This text file must contain the data described below in the
|
||
|
specific order presented. The data in this image (.img) file
|
||
|
will be programmed into the 8572.
|
||
|
|
||
|
XXX ESN Prefix (decimal)
|
||
|
XXXXXXXX ESN (8 digits decimal)
|
||
|
XXXXX SIDH (5 digits decimal)
|
||
|
1 Access Bit
|
||
|
1 Local Option Bit
|
||
|
AAAPPPXXXX MIN (10 digits)
|
||
|
08 SCM
|
||
|
0XXX (0333 or 0334)
|
||
|
10 Access Overload Class
|
||
|
1 Pref. System Bit
|
||
|
10 GIM
|
||
|
12345 Security Code
|
||
|
|
||
|
|
||
|
EXAMPLE IMAGE FILE
|
||
|
Filename: TEST.IMG
|
||
|
|
||
|
165
|
||
|
00246812
|
||
|
00031
|
||
|
1
|
||
|
1
|
||
|
5105551212
|
||
|
08
|
||
|
0334
|
||
|
10
|
||
|
1
|
||
|
10
|
||
|
12345
|
||
|
|
||
|
|
||
|
PROGRAMMING
|
||
|
|
||
|
Once the image file containing the appropriate data has been
|
||
|
saved, run the software with QBASIC or Microsoft BASIC and follow the
|
||
|
prompts. Be sure to set the proper parallel port address in line
|
||
|
1950 to reflect the port to which the interface is connected
|
||
|
first.
|
||
|
|
||
|
TUNING STEPS
|
||
|
|
||
|
1) With a digital voltmeter attached to the positive terminal
|
||
|
of C908, adjust VR908 to provide a reading of 8 vdc (q 0.1 volt).
|
||
|
|
||
|
2) With the voltmeter attached to the positive terminal of
|
||
|
C913, adjust VR918 for a reading of 8 vdc (q 0.1 volt).
|
||
|
|
||
|
3) Connect the voltmeter to test point TXV and enter diagnostic
|
||
|
command 0, 1, SEL, 9, END. Adjust C676 to achieve a reading of 5
|
||
|
vdc control voltage (q 0.1 volt).
|
||
|
|
||
|
4) Check receiver control voltage with test point RXV. Adjust
|
||
|
C614 for a reading of 4 vdc (q 0.1 volt).
|
||
|
|
||
|
5) With a power meter connected to the antenna connector of
|
||
|
the transceiver through an attenuator, enter command SEL, 1, 2, SND,
|
||
|
END to turn on the transmitter at high power. VR814 should then
|
||
|
be adjusted to show 3 watts (34.8 dBm) on the power meter.
|
||
|
|
||
|
6) Using the same power meter, enter command SEL, 1, 3, 7, END.
|
||
|
|
||
|
Adjust VR846 for a low power maximum reading of 4 milliwatts (6
|
||
|
dBm).
|
||
|
|
||
|
7) Using a frequency counter to measure the output of the
|
||
|
antenna connector, adjust X600 for a reading of 836.4000 MHz (q 0.1 kHz).
|
||
|
|
||
|
8) Using a deviation meter, activate DTMF tones with command
|
||
|
SEL, 2, 1, END, 1, 1, END and adjust VR259 for 8.4 kHz q 0.1 kHz DTMF
|
||
|
deviation.
|
||
|
|
||
|
9) End DTMF signaling with command 1, 0, END. Enable SAT
|
||
|
transmission by entering SEL, 2, 8, SND, END and adjust VR261 for
|
||
|
7.8 kHz deviation (q 0.1 kHz).
|
||
|
|
||
|
10) Enter SND, END to discontinue SAT signaling.
|
||
|
|
||
|
|
||
|
ADDITIONAL ADJUSTMENT
|
||
|
|
||
|
The level of audio fed to the earphone via the "ear" line (pin #7
|
||
|
on the handset connector) can be adjusted via VR215. 1.2 Vrms is
|
||
|
the factory specified level with the volume turned up to it's
|
||
|
maximum setting.
|
||
|
|
||
|
Received audio signals can be adjusted for minimal distortion by
|
||
|
peaking L703.
|
||
|
|
||
|
Frequency deviation of voice audio can be fine tuned with VR260.
|
||
|
Factory spec. is for 8 kHz deviation.
|
||
|
|
||
|
|
||
|
POWER LOSS
|
||
|
|
||
|
If the transceiver refuses to even power up and begin self-diagnostics,
|
||
|
check the traces on the underside of the board near the power connector.
|
||
|
|
||
|
Most of these units 'protect' themselves against reverse polarity
|
||
|
being present on the power cables with fusible traces. If the
|
||
|
phone is connected to a vehicle or battery power supply backwards,
|
||
|
one of these very small circuit traces will vaporize, leaving the
|
||
|
phone inoperative.
|
||
|
|
||
|
While inconvenient for the customer and service technician alike,
|
||
|
repairing the trace is an additional source of revenue for the
|
||
|
shop that might not be generated had a standard replaceable fuse or
|
||
|
rectifier been utilized in the design.
|
||
|
|
||
|
|
||
|
APPENDIX III
|
||
|
|
||
|
TECHNICAL RESOURCES
|
||
|
|
||
|
|
||
|
|
||
|
EEPROM PROGRAMMER
|
||
|
|
||
|
In preparing this article and performing other research involving various
|
||
|
types of firmware, we used the EPROM+ programming system from Andromeda
|
||
|
Research. This small, portable device is housed in a carrying case and
|
||
|
requires no internal card to operate with your PC. Once the software is
|
||
|
installed on the computer, the EPROM+ programmer is simply plugged into an
|
||
|
available parallel printer port.
|
||
|
|
||
|
To program the PCD8572 series EEPROMs, a small adapter is required.
|
||
|
|
||
|
You can construct this yourself from the included instructions,
|
||
|
or purchase it already built for about $35 extra.
|
||
|
|
||
|
The EPROM+ programming system is available for $289 from the
|
||
|
manufacturer:
|
||
|
|
||
|
Andromeda Research
|
||
|
P.O. Box 222
|
||
|
Milford, Ohio 45150
|
||
|
(513) 831-9708 - voice
|
||
|
(513) 831-7562 - fax
|
||
|
|
||
|
|
||
|
SERVICE MANUALS
|
||
|
|
||
|
Service manuals are available for most Radio Shack or Tandy products from
|
||
|
Tandy National Parts. Ordering these publications requires that you visit
|
||
|
your local Radio Shack store. Tell the clerk that you want him (or her)
|
||
|
to call National Parts and order a service manual for catalog number....
|
||
|
|
||
|
National Parts no longer accepts calls from consumers and will only
|
||
|
ship to a recognized Radio Shack retail outlet.
|
||
|
|
||
|
NOKIA - MOBIRA
|
||
|
|
||
|
Service handsets, manuals and other parts can be ordered from
|
||
|
Nokia-Mobira in Largo, Florida. Their toll-free technical
|
||
|
assistance number is (800) 666-5553.
|
||
|
|
||
|
TANDY FAX-BACK SERVICE
|
||
|
|
||
|
Tandy Support Services offers technical information via fax-back
|
||
|
server. There is no mention that the service is restricted to
|
||
|
Radio Shack stores. Although ANI can be hell, the toll-free number
|
||
|
is (800) 323-6586 if you want to be faxed product info on assorted 'Shack
|
||
|
products. The server makes neat video game noises, and thanks you for
|
||
|
using the service.
|
||
|
|
||
|
For an index of the cellular specification sheets available via
|
||
|
fax-back, request document #8882.
|
||
|
|
||
|
Programming instructions are also available from this automated
|
||
|
fax server:
|
||
|
|
||
|
DOCUMENT # PHONE MODEL
|
||
|
|
||
|
9009 Current List [index]
|
||
|
8728 CT-105, 1050, 1055
|
||
|
9004 CT-350
|
||
|
9005 CT-302
|
||
|
9006 CT-102, 103, 104, 1030, 1033
|
||
|
9007 CT-300, 301
|
||
|
9008 CT-100, 101, 200, 201
|
||
|
9020 CT-351
|
||
|
9665 BC901ST [170-1015]
|
||
|
9579 CP-1700 [170-1016]
|
||
|
9577 CP-4600/5600 [170-1067 / 170-1056]
|
||
|
14493 Ericsson AH-210 [170-1064]
|
||
|
9581 EZ-400 [170-1057]
|
||
|
9743 Motorola 12822 [170-1058]
|
||
|
9583 Motorola DPC550 [170-1059]
|
||
|
|
||
|
This information provided for reference purposes only. Use of
|
||
|
this fax-back service may be restricted to authorized personnel. No
|
||
|
one has ever faxed me to complain, however.
|
||
|
|
||
|
THE INTERFACE
|
||
|
|
||
|
The uuencoded drawing which accompanies this article describes the
|
||
|
interface required to use the programming software to rebuild the data
|
||
|
stored within the serial EEPROM. Because there are a number of variables
|
||
|
that can affect the performance of this software and interface, prepare
|
||
|
yourself for a bit of trial and error. A standard programming device is
|
||
|
recommended over the use of this software. Since the original publication
|
||
|
of this manual in hard-copy, we've heard reports that the software does not
|
||
|
work well with the PCD8572, but does favor the PCD85C72 (CMOS version).
|
||
|
|
||
|
The DB-25 connector is wired to an 8-pin DIP socket to accommodate the 8572
|
||
|
integrated circuit. A regulated, well-filtered source of 5 volts must be
|
||
|
connected to pin #8 of the DIP socket, and Pin #4 must be tied to ground.
|
||
|
If the PC used for programming and the power source to the IC socket share
|
||
|
a common ground, you may be able to use pin #25 of the parallel port connector
|
||
|
as shown in the diagram.
|
||
|
|
||
|
Please be careful not to cause any shorts in this instance or you
|
||
|
may damage your computer by sinking too much current through the
|
||
|
parallel port. If you are unsure of what you are doing, eliminate
|
||
|
the connection between pin #4 of the IC socket and pin #25 of the
|
||
|
DB-25 connector. Instead, connect pin #4 directly to ground.
|
||
|
|
||
|
The resistor shown in the circuit is used as an optional voltage
|
||
|
divider. Depending on the voltage provided by pin #2 of your
|
||
|
parallel port, a resistor between 100 and 1k ohms may be required
|
||
|
to drop it to a level within the nominal range required by the
|
||
|
EEPROM.
|
||
|
|
||
|
TUNING THE RADIO
|
||
|
|
||
|
The diagrams in the uuencoded .zip file will assist in identifying and
|
||
|
locating the various adjustment points on the logic board and transceiver (RF)
|
||
|
PC board. Alignment should not be attempted by technicians unfamiliar with
|
||
|
the principles involved, or in the absence of calibrated radio frequency
|
||
|
measurement equipment.
|
||
|
|
||
|
A diagnostic (service) handset may be required to access
|
||
|
service-level commands within the transceiver. If the phone does
|
||
|
not respond properly to the commands documented herein, you'll
|
||
|
need to obtain a service handset from Tandy National Parts. This
|
||
|
handset is actually a Nokia "programming handset" which can be
|
||
|
obtained directly from the factory.
|
||
|
|
||
|
PROGRAMMING TEMPLATE
|
||
|
|
||
|
For Tandy / Radio Shack Cellular Mobile Telephones
|
||
|
Models CT-102, 302, 1030, 1033, etc.
|
||
|
|
||
|
|
||
|
|
||
|
1) Power up phone. After the phone cycles through it's
|
||
|
self-test mode and the display clears, enter the following keystrokes from
|
||
|
the keypad:
|
||
|
|
||
|
*, 3, 0, 0, 1, #, X, X, X, X, X, SEL, 9, END
|
||
|
|
||
|
The X, X, X, X, X represents the five-digit security code stored
|
||
|
in EEPROM. The factory default is 1, 2, 3, 4, 5. This security
|
||
|
code is required to access handset programming mode.
|
||
|
|
||
|
2) The display will now read: IdEnt IF InFO Pri
|
||
|
|
||
|
3) Press END to program NAM 1. Display will show first
|
||
|
programming step.
|
||
|
|
||
|
4) To program NAM 2, press SND twice instead of END. Display
|
||
|
will cycle through: OPt InFO diSAbLEd then OPt InFO EnAbLEd
|
||
|
|
||
|
5) Use the END key to step through each step. The SND key
|
||
|
toggles the state of single-digit options. To enter new
|
||
|
information, use END to step through the display until the old
|
||
|
data is displayed. Key in the new data and press END to increment to
|
||
|
the next step.
|
||
|
|
||
|
6) When programming has been completed, press SEL, CLR to save
|
||
|
changes.
|
||
|
|
||
|
|
||
|
Step # Desired Input Display Data Description
|
||
|
|
||
|
01 5 digits HO-Id SIDH (Home System Identification)
|
||
|
02 0 or 1 MIN Mark MIN Mark (Toggle with SND)
|
||
|
03 0 or 1 LOCL OPt Local Use Mark (Toggle with SND)
|
||
|
04 10 digits Phon MIN (Area Code + Mobile Number)
|
||
|
05 08 St CLASS SCM (Station Class Mark)
|
||
|
06 333 or 334 PAging Ch IPCH (Initial Paging Channel)
|
||
|
07 2 digits O-LOAd CL Access Overload Class
|
||
|
08 A or B PrEF SyS Preferred System (Toggle with SND)
|
||
|
09 2 digits grOUP Id GIM Mark (Set to 10 in U.S.)
|
||
|
10 5 digits SECUrity Security Code
|
||
|
11 ------- 1 dAtE Firmware Date - not changeable
|
||
|
12 mmddyy 2 dAtE Installation Date
|
||
|
|
||
|
Press SEL, CLR to save & exit. Turn Power off and back on for
|
||
|
model CT-302.
|
||
|
|
||
|
|
||
|
[Begin Editorial]
|
||
|
|
||
|
--------------------------------------------------------------------------
|
||
|
HOW TO OBTAIN A HARD-COPY VERSION OF THIS FILE - WITH ALL PHOTOS:
|
||
|
--------------------------------------------------------------------------
|
||
|
|
||
|
"The Complete Guide to Tandy / Radio Shack Cellular Hardware" is available
|
||
|
for $15 prepaid. We keep $5 of the price to cover the cost of printing
|
||
|
and the Priority mail postage. The remaining $10 of the purchase price will
|
||
|
be donated to Boston's The L0pht to help them cover the cost of upgrading
|
||
|
their Internet connection for l0pht.com....
|
||
|
|
||
|
The guys at the L0pht have always been cool with us, and maintain what
|
||
|
amounts to one of the best cellular archives accessible on the 'net. We
|
||
|
want to do what we can to assist them in providing this public source of
|
||
|
enlightenment. Now you can help them, and get something for it in return.
|
||
|
If nothing else, you can sit back and enjoy all my great close-up photos
|
||
|
of the chips <g>!
|
||
|
|
||
|
-- Damien Thorn
|
||
|
|
||
|
Here's the address:
|
||
|
|
||
|
Phoenix Rising Communications
|
||
|
3422 W. Hammer Lane, Suite C-110
|
||
|
Stockton, California 95219
|
||
|
|
||
|
[end editorial]
|
||
|
|
||
|
-----------------------------------------------------------------------------
|
||
|
You can reach me via e-mail at: damien@prcomm.com
|
||
|
-----------------------------------------------------------------------------
|
||
|
|
||
|
|
||
|
|
||
|
1000 ' CELLULAR DATA REPAIR UTILITY
|
||
|
1005 ' Form image and program PCD8572 IC via LPT port.
|
||
|
1010 ' (c) 1993, 1994, 1995 WarpCoreBreachGroup - All rights reserved.
|
||
|
1015 '
|
||
|
1020 ' This program is not shareware/freeware.
|
||
|
1025 '
|
||
|
1030 DATA xx,xx,xx,xx,xx,xx,xx,xx ' Bytes 00-07
|
||
|
1040 DATA xx,38,xx,xx,xx,xx,xx,xx ' Bytes 08-15
|
||
|
1050 DATA 00,00,00,00,xx,xx,xx,xx ' Bytes 16-23
|
||
|
1060 DATA xx,xx,xx,xx,xx,xx,xx,xx ' Bytes 24-31
|
||
|
1070 DATA xx,xx,xx,D6,C5,5C,C6,00 ' Bytes 32-39
|
||
|
1080 DATA 27,00,01,01,11,11,11,11 ' Bytes 40-47
|
||
|
1090 DATA 11,08,4D,01,0F,01,0F,00 ' Bytes 48-55
|
||
|
1100 DATA 04,00,00,00,FF ' Bytes 56-60
|
||
|
1105 UNIT1$="050490"
|
||
|
1110 DIM BYTE$(60),BYTE(61)
|
||
|
1120 FOR I=0 TO 60:READ BYTE$(I):NEXT
|
||
|
1130 FILES "*.IMG"
|
||
|
1140 LINE INPUT "Which file do you want to read? ";F$
|
||
|
1150 OPEN "I",#1,F$+".IMG"
|
||
|
1160 INPUT#1,ESNPREFIX
|
||
|
1170 INPUT#1,ESN#
|
||
|
1180 INPUT#1,HOMEID
|
||
|
1190 INPUT#1,ACCESS
|
||
|
1200 INPUT#1,LOCALOPT
|
||
|
1210 INPUT#1,PHONE$
|
||
|
1220 INPUT#1,STATCLASS
|
||
|
1230 INPUT#1,PGCH
|
||
|
1240 INPUT#1,OVERLDCL
|
||
|
1250 INPUT#1,PREFSYS
|
||
|
1260 INPUT#1,GROUPID
|
||
|
1270 INPUT#1,SEC$
|
||
|
1280 ' Building binary image
|
||
|
1290 UNIT2$=MID$(UNIT$,1,2)+MID$(UNIT$,4,2)+MID$(UNIT$,9,2)
|
||
|
1300 CLOSE #1
|
||
|
1310 FOR I=1 TO 5:BYTE$(I-1)="3"+MID$(SEC$,I,1):NEXT
|
||
|
1320 FOR I=0 TO 2:BYTE$(10+I)=RIGHT$("0"+HEX$(VAL(MID$(UNIT1$,I*2+1,2))),2)
|
||
|
1325 NEXT
|
||
|
1330 FOR I=0 TO 2:BYTE$(13+I)=RIGHT$("0"+HEX$(VAL(MID$(UNIT2$,I*2+1,2))),2)
|
||
|
1335 NEXT
|
||
|
1340 FOR I=0 TO 4:BYTE$(24+I)=MID$(PHONE$,2*I+1,2):NEXT
|
||
|
1350 FOR I=5 TO 0 STEP -1
|
||
|
1360 Q=INT(ESN#/(16^I))
|
||
|
1370 ESN#=ESN#-Q*(16^I)
|
||
|
1380 IF Q>9 THEN Q=Q+7
|
||
|
1390 ESN$=ESN$+CHR$(48+Q)
|
||
|
1400 NEXT
|
||
|
1410 BYTE$(8)=RIGHT$("0"+HEX$(ESNPREFIX),2)
|
||
|
1420 BYTE$(5)=MID$(ESN$,5,2)
|
||
|
1430 BYTE$(6)=MID$(ESN$,3,2)
|
||
|
1440 BYTE$(7)=MID$(ESN$,1,2)
|
||
|
1450 FOR I=0 TO 60:Q$=BYTE$(I)
|
||
|
1460 QH=ASC(LEFT$(Q$,1))-48:IF QH>9 THEN QH=QH-7:IF QH>15 THEN QH=QH-32
|
||
|
1470 QL=ASC(RIGHT$(Q$,1))-48:IF QL>9 THEN QL=QL-7:IF QL>15 THEN QL=QL-32
|
||
|
1480 Q=QH*16+QL
|
||
|
1490 BYTE(I)=Q:CHECK=CHECK+Q
|
||
|
1500 NEXT
|
||
|
1510 BYTE(20)=HOMEID AND 255:BYTE(21)=INT(HOMEID/256)
|
||
|
1520 BYTE(22)=ACCESS
|
||
|
1530 BYTE(23)=LOCALOPT
|
||
|
1540 BYTE(29)=STATCLASS
|
||
|
1550 BYTE(30)=PGCH AND 255:BYTE(31)=INT(PGCH/256)
|
||
|
1560 BYTE(32)=OVERLDCL
|
||
|
1570 BYTE(33)=PREFSYS
|
||
|
1580 BYTE(34)=GROUPID
|
||
|
1590 AC$=MID$(PHONE$,1,3)
|
||
|
1600 PRE$=MID$(PHONE$,4,3)
|
||
|
1610 PH$=MID$(PHONE$,7,4)
|
||
|
1620 AC=VAL(AC$)
|
||
|
1630 IF MID$(AC$,2,2)="00" THEN AC2=AC-1:GOTO 1670
|
||
|
1640 IF MID$(AC$,3,1)="0" THEN AC2=AC-101:GOTO 1670
|
||
|
1650 IF MID$(AC$,2,1)="0" THEN AC2=AC-11:GOTO 1670
|
||
|
1660 AC2=AC-111
|
||
|
1670 PRE=VAL(PRE$)
|
||
|
1680 IF MID$(PRE$,2,2)="00" THEN PRE2=PRE-1:GOTO 1720
|
||
|
1690 IF MID$(PRE$,2,1)="0" THEN PRE2=PRE-11:GOTO 1720
|
||
|
1700 IF MID$(PRE$,3,1)="0" THEN PRE2=PRE-101:GOTO 1720
|
||
|
1710 PRE2=PRE-111
|
||
|
1720 IF PRE2<0 THEN PRE2=1000+PRE2
|
||
|
1730 IF LEFT$(PH$,1)="0" THEN D=-24:GOTO 1750
|
||
|
1740 D=87-24*(ASC(PH$)-49)
|
||
|
1750 IF MID$(PH$,4,1)="0" THEN D=D-10
|
||
|
1760 IF MID$(PH$,3,1)="0" THEN D=D-100
|
||
|
1770 IF MID$(PH$,2,1)="0" THEN D=D-1000
|
||
|
1780 IF MID$(PH$,1,1)="0" THEN D=D-10105
|
||
|
1790 PH2=VAL(PH$)-D
|
||
|
1800 C=INT(PRE2/4)
|
||
|
1810 B=64*(PRE2 AND 3)
|
||
|
1820 A=PH2 AND 255
|
||
|
1830 B=B OR INT(PH2/256)
|
||
|
1840 BYTE(35)=A
|
||
|
1850 BYTE(36)=B
|
||
|
1860 BYTE(37)=C
|
||
|
1870 BYTE(38)=AC2 AND 255
|
||
|
1880 BYTE(39)=INT(AC2/256)
|
||
|
1890 CHECK=0
|
||
|
1900 FOR I=0 TO 60
|
||
|
1910 CHECK=CHECK+BYTE(I)
|
||
|
1920 NEXT
|
||
|
1930 BYTE(61)=CHECK AND 255
|
||
|
1940 DEV$="1010":ADDR$="000"
|
||
|
1945 ' Select the base address for your printer port with the next line.
|
||
|
1950 BASE=&H378 ' Which is LPT2. &h378 is LPT1 and &h3bc is LPT3.
|
||
|
1960 GOTO 2120
|
||
|
1970 OUT BASE,(DOUT AND 1) OR 2*(CLK AND 1) OR 4*(RELAY)
|
||
|
1980 FOR DELAY=0 TO 9:NEXT
|
||
|
1990 DIN=INP(BASE) AND 1
|
||
|
2000 RETURN
|
||
|
2010 FOR I=1 TO LEN(B$)
|
||
|
2020 B=ASC(MID$(B$,I,1))-48
|
||
|
2030 DOUT=B:CLK=0:GOSUB 1970
|
||
|
2040 DOUT=B:CLK=1:GOSUB 1970
|
||
|
2050 DOUT=B:CLK=0:GOSUB 1970
|
||
|
2060 NEXT
|
||
|
2070 T=0
|
||
|
2080 DOUT=1:CLK=1:GOSUB 1970
|
||
|
2090 IF DIN=0 THEN RETURN
|
||
|
2100 IF T=200 THEN BEEP:PRINT "Nack timeout error":STOP
|
||
|
2105 ' Is voltage applied to the chip?
|
||
|
2110 T=T+1:GOTO 2080
|
||
|
2120 MAX=61:RELAY=1:DOUT=1:CLK=1:GOSUB 1970
|
||
|
2130 T$=TIME$
|
||
|
2140 IF T$=TIME$ GOTO 2140
|
||
|
2150 FOR J=0 TO MAX
|
||
|
2160 DOUT=1:CLK=1:GOSUB 1970 ' Start bit
|
||
|
2170 IF DIN=0 THEN BEEP:PRINT "Bus not free error":STOP ' Bad!
|
||
|
2180 DOUT=0:CLK=1:GOSUB 1970
|
||
|
2190 DOUT=0:CLK=0:GOSUB 1970
|
||
|
2200 B$=DEV$+ADDR$+"0"
|
||
|
2210 GOSUB 2010
|
||
|
2220 B$=""
|
||
|
2230 FOR I=7 TO 0 STEP -1
|
||
|
2240 IF (J AND (2^I)) THEN B$=B$+"1" ELSE B$=B$+"0"
|
||
|
2250 NEXT
|
||
|
2260 GOSUB 2010
|
||
|
2270 Z=BYTE(J)
|
||
|
2280 B$="":FOR I=7 TO 0 STEP -1
|
||
|
2290 IF (Z AND (2^I)) THEN B$=B$+"1" ELSE B$=B$+"0"
|
||
|
2300 NEXT
|
||
|
2310 GOSUB 2010
|
||
|
2320 DOUT=0:CLK=0:GOSUB 1970
|
||
|
2330 DOUT=0:CLK=1:GOSUB 1970 ' Stop bit
|
||
|
2340 DOUT=1:CLK=1:GOSUB 1970
|
||
|
2350 PRINT USING "###% programmed";100*J/MAX
|
||
|
2360 PRINT STRING$(80*J/MAX,46)
|
||
|
2370 LOCATE CSRLIN-2,POS(0)
|
||
|
2380 GOSUB 1970
|
||
|
2390 IF DIN=0 GOTO 2380
|
||
|
2400 NEXT
|
||
|
2410 RELAY=0:DOUT=1:CLK=1:GOSUB 1970
|
||
|
2420 PRINT:PRINT
|
||
|
2430 'This is the end in case you though the code was truncated somehow...
|
||
|
|
||
|
|