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
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 .
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.
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.
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
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@example.com
^^^^-^^^^--MAXCHAN FF ; Highest Channel number ($01 to $99)
^^^^--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
^--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
^^^--------SCANHLD E0 ; Scan hold time ( 0 - 7 seconds)
^--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
^--------ANITRAIL 20 ; Enable SELCALL Trailing ANI
^---------ANIBEEP 40 ; Enable Send ANI with beep
^----------CAR2CAR 80 ; Enable SELCALL Car to Car call
^^^^--TIMER44 ; ANI SELCALL lead-in time (1=short, 15,0=long)
^-------BSYDLY5 ; Enable Busy LED 5 second
^--------SILSWEN ; Enable Silent switch ??
^---------SNDIBUSY ; Enable SEND Inhibit on BUSY
^----------SNDIOPEN ; Enable SEND Inhibit on OPEN
^--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,
^--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
^--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??)
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.
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).
$0000 01 ;first scan channel = ch 1
$0004 02 ;second = ch 2
$0010 10 ;fifth = ch 10
$0044 FF ;end of scan list
$004C FF, etc....