This information applies specifically to the UHF low band units used
by the Royal District Nursing Service, Melbourne, Australia, that found
their way into the amateur service around January 2002.
The A version is different to the standard RT85 and the C models.
Use this information with care!
2k byte EPROM (types 2716 / 2516)
& 8k byte EPROM (type 2764) versions
Warning:
At least one version of the PC programming software for the RT85A
by EXICOM currently circulating the Internet generates incorrect personality
data. It appears to generate valid channel/frequency data, but does
not set configuration bits correctly for this model, and does not set up
scan channel data correctly. The version in question is RT-85A-1,
version 1.3, 19/6/90, files RT85A.bas & SELCHA.bas .
Background:
All the RT85 models use EPROMs to store frequency/channel data
and configuration information. These settings are modified by removing
the EPROM from the radio, erase it under Ultra-Violet light for 20 minutes,
and program the EPROM with new data in either a special proprietary programmer
or a general purpose PC with a EPROM programmer attached.
Original RT85:
The AWA RT85A is a later variant of the RT85, and comes in two
versions.
They are basically the same radio except for the microprocessor
daughter board.
The original RT85 used a mask programmed microprocessor mounted
on the main transmitter PCB. A small detachable daughter board contained
an EPROM and a shift register chip and could be removed for programming
in a proprietary Midland Programmer model 70-1000.
The RT85A versions relocated the microprocessor from the main PCB to a larger daughter board which plugs into the connectors previously used for the EPROM board on the RT85.
There are two versions of these processor daughter boards.
RT85A Mask programmed version:
One version uses a 40-pin mask programmed Motorola 146805G2 microprocessor,
with
a 2k byte 2716 type EPROM and a shift register chip. In this
version the EPROM only stores frequencies and configuration data, plus
a few "library" functions. The main program (firmware) is stored
internally in the microprocessor at the time of manufacture and is not
readily accessible and cannot be modified.
The "Library" functions stored in the EPROM are read into the microprocessor
RAM as required. They are used to extend the functionality of the radio
for specific applications that either would not fit into the 6805 CPU's
small mask ROM, or were simply not thought of at design time. They
may also be used to correct some errors in the original firmware without
requiring a very costly ROM mask change.
These functions are called at key points in the Mask ROM program
when appropriate option bits are set in the EPROM personality bytes at
addresses $03F6 & $03F7. Some functions do not appear to have enable
bits and are always called and executed if they are found in the EPROM
at key points in the firmware.
RT85A HD6301/2764 version:
A later variant of the RT85A (A+ ???) uses a 64-pin Hitachi HD6305Y2P
microprocessor, a 8k byte 2764 EPROM, and does not use a shift register
chip. The EPROM in this model stores both the main program, as well
as frequency and configuration data. "Library" functions are unnecessary
in this version as all of the firmware is stored in the EPROM, which is
easily modified to implement additional functionality or correct bugs.
Personality data:
The channel and configuration data layout is almost identical in
both the RT85A versions. The main difference is that the data in the later
2764 EPROM has been moved to start at address $1000 (Hex 1000).
RX channel data lives at $000-$267 in 2716, and $1000-$1267 in 2764
EPROM.
TX channel data lives at $400-$667 in 2716, and $1400-$1667 in
2764.
Personality data lives at $3F0-$3FC in the 2716, and $13F0-$13FC
in the 2764.
The 2716 also has "library" functions interspersed with this data.
The 2764 does not.
The 2764 has the main program for the CPU stored in the EPROM between
$0000-$1000. It also uses a small area between addresses $1FF8-$1FFF
for program vectors.
The following table lists the function of each bit in the Personality Data:
*******************************************************
* Personality Data - AWA RT85A (RDNS versions)
* For MC6805 + 2716 EPROM version.
* EPROM $03F0 - $03FC
*
* Addresses in (xxxx) for HD6305 + 2764 EPROM version.
*
* NOTE: anything marked with '??' is questionable.
* Further advice requested. Send to [email protected]
*
$3F0 ($13F0)
nnnn nnnn
^^^^-^^^^--MAXCHAN FF ; Highest Channel number ($01 to $99)
$03F1 ($13F1)
xxxx nnnn
^^^^--TXLIMIT 0F ; TX Timeout value
; 0=continuous, time(secs) = n*15
^-------DSPBLNK 10 ; Enable Display Blanking
after 20 seconds
^--------TXIBUSY 20 ; Enable Transmit Inhibit on BUSY
^---------TXIOPEN 40 ; Enable Transmit Inhibit on OPEN
^----------DPWRENB 80 ; Enable Hi/Lo output power link
; (Depower link) on back of control head
$03F2 ($13F2)
nnnx xxxx
^--SCANENB 01
; Enable Scanning
^---SCANTSQ 02
; Enable Scan Stop with CTCSS
^----SCANDEL 04 ; Enable
Chan DOWN key Deletes Scan Channel
^-----SCANHUR 08 ; Enable
Hangup up Resets Scan
; (using Depower link on head ??)
^-------SCANPROG 10 ; Enable Self-Programming
Scan
^^^--------SCANHLD E0 ; Scan hold time ( 0 - 7 seconds)
$03F3 ($13F3)
xxxx xxxx
^--OPENHU 01
; Enable Silent switch
^---TSQENB 02
; Enable Tone Squelch (CTCSS on receive)
^----SELCENB 04 ; Enable
SELCALL
^-----STATENB 08 ; Enable
SELCALL Status call
^-------ANILEAD 10 ; Enable SELCALL Leading
ANI
^--------ANITRAIL 20 ; Enable SELCALL Trailing ANI
^---------ANIBEEP 40 ; Enable Send ANI with beep
^----------CAR2CAR 80 ; Enable SELCALL Car to Car call
$03F4 ($13F4)
xxxx nnnn
^^^^--TIMER44 ; ANI SELCALL
lead-in time (1=short, 15,0=long)
^-------BSYDLY5 ; Enable Busy LED 5 second
delay
^--------SILSWEN ; Enable Silent switch ??
^---------SNDIBUSY ; Enable SEND Inhibit on BUSY
^----------SNDIOPEN ; Enable SEND Inhibit on OPEN
$03F5 ($13F5)
nnnn xxxx
^--VOTENB
; Enable Voting (if option fitted)
; (may also be for emergency modes ??)
^---xxxx
; an option with timers, SELCALL, and beeps ??
^----SCANLED ; Enable
SCAN LED as Power Indicator
^-----OPENLED ; Enable OPEN
LED
^^^^-------TONEPER ; SELCALL tone period (0,F=slow,
E=fast)
$03F6 ($13F6)
xxxx xxxx
^--SCTXDEC
; Bypass TX code initialisation of SELCALL
^---xxxxxx
; unused (another CTCSS option in 2764 ver. ??)
^----F320
; Enable Lib 320 ?? (unused in 2764)
^-----F340
; Enable Lib 340 ?? (unused in 2764)
^-------xxxxxx ; Enable Lib 360
?? (unused in 2764)
^--------xxxxxx ; Enable Lib 380 ?? (unused
in 2764)
^---------xxxxxx ; Enable Lib 3A0 ?? (unused
in 2764)
^----------unused ; unused
$03F7 ($13F7)
xxxx xxxx
^--unused
; Enable Lib 680 ?? (unused in 2764)
^---unused
; Enable Lib 6C0 ?? (unused in 2764)
^----unused ;
Enable Lib 6E0 ?? (unused in 2764)
^-----ALARMRST ; Enable ALERT reset
enable via Depower/Hangup link
^-------unused ; Enable Lib 720 ??
(unused in 2764)
^--------xxxx ; Enable Depower
link as DOWN key in user scan ??
^---------unused ; unused
^----------unused ; unused
* SELCALL ID - 5 digits, RX and TX digits combined into one byte.
* Transmit digits in highest 4 bits, Receive digits in lower 4
bits.
* Digits adjacent should not be the same ??(ie 24310 is OK, but
24430 is illegal??)
$03F8 ($13F8-$13FC)
tttt rrrr ;1st digits TX & RX
tttt rrrr ;2nd digits
tttt rrrr ;3rd digits
tttt rrrr ;4th digits
tttt rrrr ;5th digits
Scan channel list:
WARNING: There is a bug in the
HD6305 / 2764 version (at least in the District Nursing radios) that prevents
scanning channels above channel 39. A patch for the firmware is available
to fix this problem.
This is not a configuration problem and is not a fault in the programming
software.
Enable scanning by setting bits in the personality data.
Turn on the scan option by setting bit 0 ($01) in byte $03F2, and
bit 2 ($04) if you want the "DOWN" button to delete up to 4 channels in
the list (to skip repeaters suffering LIPD interference for instance).
I haven't figured out Self programming (user programming) options yet.
Enter scan channels into a list starting at address $0000 ($1000) with entries every 4 bytes. The list ends with a value $FF. These locations correspond to the first byte of each channel's receive data. Note however that the channel data has a break between channel 9 and 10, 19 and 20, etc, etc whereas the scan channel runs sequentially without gaps in the memory map. Channel numbers are represented as two digits, one in the 4 high bits, the other 4 low bits (as displayed on the front panel - not as a binary number).
Channels can be in any order, and can include channel 0. Channels can occur more than once.
Example:
To scan channels 1,2,3,4,10,20,30,40,51,52,53,54,55,56,57,58,59
we enter the following data at the addresses indicated: (note there is
no gap between addresses $0024 and $0030 - all are used).
Addr Data
$0000 01 ;first scan channel = ch 1
$0004 02 ;second = ch 2
$0008 03
$000C 04
$0010 10 ;fifth = ch 10
$0014 20
$0018 30
$001C 40
$0020 51
$0024 52
$0028 53
$002C 54
$0030 55
$0034 56
$0038 57
$003C 58
$0040 59
$0044 FF ;end of scan list
$004C FF, etc....