_____________________

Cronus, Version 2.2.0
_____________________

Code image CRC:
  Standard: e7ce
  Japanese: Not yet released

This release consists of 2 separate files:

 - cronus.hex can be downloaded via AZedit

 - eprom_img.hex can be used to reprogram the code flash with a BDM
   programmer

The difference between these is that the eprom_img.hex file includes
the boot downloader.

The eprom_img.hex file can also be downloaded via AZedit; however,
depending on the firmware versions, there may not be enough RAM for
the download to succeed. In that case, you can either download the
cronus.hex file, or restart Cronus in the boot downloader and download
the eprom_img.hex file.

Note that when upgrading from v0.2.1 or earlier, you must download
the eprom_img.hex file, since the earlier versions do not have the
boot downloader which this version requires.

_____________

Compatibility
_____________

The intercom will restart with a blank setup when upgrading from version
2.1.0 or earlier. However, any IP settings and/or hot-link license file
will be preserved.

Note that if you downgrade to a version prior to v1.1.0, then
any IP settings and/or hot-link license file will be lost; however, they
will be restored if the intercom is then upgraded to v1.1.0 or later.

AZedit:
  - Requires 4.6.0 for access to all available features.

RVON-C
  - Requires v2.2.0 or later to support a separate CWW key on the KP 32 CLD
  - Requires v2.3.0 or later to support more than 64 keys per port
  - Requires v2.4.0 or later for full support of trunking of more than 31 intercoms

PAP-32:
  - Requires v0.0.3 or later in order to be configured via AZedit.

GPIO-16:
  - Supports any version of GPIO-16.

TM-2000:
  - Requires v8.8.0 or later for support of more resource across trunking.
  - Requires v8.9.1 or later for MC/TM communications via Ethernet.
  - Requires v9.0.0 or later for support for talking to two TM-2000s.
  - Requires v9.0.0 or later for support for IFB tallies across trunking.
  - Requires v9.1.0 or later for support for IFB-SL tallies across trunking.

TM-10K:
  - Requires v10.0.0 or later for trunking of more than 31 intercoms

_______________

Boot Downloader
_______________

Starting with version 0.3.0, the firmware is split into 2 parts: A boot
downloader, and the actual Cronus firmware. The boot loader is normally
not touched when upgrading firmware, so it allows for recovery if
a download fails (e.g. if there is a power failure while reprogramming
the flash).

Further details of the boot downloader's operation are included in the
release notes for the boot downloader.

____________________

Downloading Firmware
____________________

The Cronus Master Controller firmware has built into it images for
the on-board FPGA, the on-board crosspoint controllers, the AIO card's
FPGA, and the AIO card's processor. When the Cronus controller boots
up, it automatically loads these other devices. Hence, the AIO card
cannot be downloaded independently, unlike in an ADAM intercom. However,
the RVON-C contains its own firmware image in flash, and is not
booted by the MC.

With version 0.3.0 and later, you cannot download an earlier version
of Cronus firmware (e.g. v0.2.1) directly. Instead, you have to restart
the Cronus frame in boot download mode, and then download the new
image via a serial AZedit session connected to J1.

In a multi-frame Cronus system, it is possible to download one or more
slave frames from AZedit; the new image is transferred from the first
frame to the slave frames via the hot-links. However, it is not
possible to directly download a slave frame with v0.3.0 or later, if
the slave frame is running v0.2.1 (or earlier). Instead, you have to
change the slave frame's ID to be frame 1; download it; and then change
it back to a slave frame.

____________

DIP Switches
____________

Position	Description
--------	-----------
   8		Reserved, must be open
   7		Future, should be open
   6		Future, should be open
   5		Use on-board GPIO as GPIO, not as alarms (J5 only)
   4		Future, should be open
   3		Audio sampling rate: open=48K, closed=44.1K
   2		Closed = No password required for config via front-panel LCD
   1		AZedit baud rate (J1): Open = 9600 baud, closed = 38.4K

Note that J33 must be set to match DIP switch position 3 (see the notes
for version 1.3.0 for further details).

______________

Change History
______________


New in version 2.2.0
--------------------

* Added support for trunking of up to 255 intercoms

  When used in conjunction with a TM-10K Trunk Master, up to 255 intercoms can
  be trunked together.

* Added support for new keypanel protocol

  New keypanel protocol is required for full support of intercoms #32 and above.
  When using new keypanel protocol, firmware download times are cut in half.
  Existing keypanels are fully supported, although they will not be able to
  access scroll lists for intercoms 32 and above.

* Extended Command-Line Protocol

  The following commands and queries have been added:
      UE?<list>           - Query which UPL statements are enabled
      UE { <val> <+/~> }* - Enable / disable UPL statements
      US?<list>           - Query which UPL statements are currently asserted

  The following stored query has been added, allowing an application to
  asynchronously monitor the status of a UPL statement:
      US?<val>


New in version 2.1.0
--------------------

* Added support for Panel Party Lines

  The PPL (Panel Party Line) assignment provides a way for one keypanel to
  dynamically create a party line.

  When panel X turns on a PPL key, it dynamically creates a party line as
  follows:
    - Any panel T which X is hearing via a P-P (i.e. T has a P-P talk key
      for X turned on, or X has a P-P listen key for T turned on) becomes
      a talker on the PPL
    - Any panel L which is hearing X via a P-P becomes a listener on the PPL

  As with standard party lines, a port which is both a talker and a listener
  on the PPL does not hear itself.

  The PPL is maintained as long as the PPL key is on. (A port continues to
  participate in the PPL, even if it stops talking or listening to the
  keypanel that created the PPL.)

  If a keypanel has multiple keys with the PPL assignment, whenever any PPL
  talk key is turned on or off, the PPL is updated, based on the current set
  of talkers and listeners. Once the panel turns off all its PPL talk keys,
  the PPL is destroyed.

  Each keypanel can form a PPL, independent of any PPLs created by any other
  panels. A port can particpate in multiple PPLs (i.e. PPLs created by 2 or
  more other ports) at once.

  Limitations:

  - A PPL can have at most 16 talkers and 16 listeners. If a keypanel is
    talking / listening to more than 16 other ports, only the first 16
    become members of the PPL. (Ports that are PPL talkers are given
    priority as listeners. In other words, if port X is a PPL talker, and
    the creator of the PPL is also talking to X, then X is guaranteed to
    become a PPL listener.)

  - At most 10 PPLs can be active simultaneously. If 10 PPLs are active,
    and another panel tries to create a PPL, that panel will get a "busy"
    tally. If a PPL becomes available, it will automatically be used to
    satisfy an outstanding PPL request, if any.

  - PPLI (Panel Party Line Inhibit) is not supported. (PPLI is similar to
    PPL; however, in addition to creating the PPL, any crosspoint from
    a port that is not a member of the PPL to a port that is a member of
    the PPL is inhibited.)

  - The creator of a PPL is never a talker or listener on the PPL, even if
    it has a P-P crosspoint to itself.

  - A trunk port is not allowed to participate in a PPL.


New in version 2.0.1
--------------------

* Fixed communications problem in TM-2000 communications via Ethernet

  When communicating with a TM-2000 via Ethernet, it was possible for
  communications between Cronus and the TM-2000 to stall. (The
  communications link would typically be torn down and re-established
  within a few seconds.)

* Fixed trunk testing

  If the trunk testing device (Auto-TIMS or RT-2M) was connected to a
  port on a Cronus running v1.9.0 or v2.0.0, automated trunk testing
 (with Trunk Supervisor) would fail, with an indication that the loopback
  test on the test port had failed. Fixed.

* Fixed KP 32 CLD version string prooblem

  AZedit could display "Unknown" for the version string for a KP 32 CLD or
  KP 12 CLD keypanel, connected via an RVON-KP and RVON-C. Fixed.


New in version 2.0.0
--------------------

* Added IFB-SL tallies

  IFB Special Lists now tally, similarly to IFB tallies.

  A key with an IFB-SL assignment displays an in-use tally whenever
  anyone is talking to that IFB-SL, or whenever anyone is interrupting
  any of the IFBs which are a member of the IFB-SL.

  A key with an IFB-SL assignment displays a busy tally if the key is on,
  and either (a) the panel has an IFB priority of 0, which means the panel
  is not allowed to interrupt IFBs, or (b) another panel, with a higher
  IFB priority, is talking to the IFB-SL, or (c) another panel, with a
  higher IFB priority, is interrupting any of the IFBs which are a member
  of the IFB-SL.

* IFB-SL tallies are available across trunking

  IFB-SL tallies across trunking are handled like IFB tallies across
  trunking (see the description for this in the list of changes for
  version 1.9.0).

  Each IFB-SL has a remote tally enable flag associated with it; this flag
  must be checked in order for other intercoms to generate in-use and busy
  tallies for an IFB-SL.

* Support keypanels with up to 128 keys

  The intercom now supports panels with up to 128 keys (e.g. a KP 32 CLD or
  KP-32 Classic with 3 expansion panels).

  The default remains at 64 keys per port. The number of keys per port can
  be set when reconfiguring the intercom, by setting "Keys per port" to
  64, 96, or 128 on the Options tab of the Intercom Configuration
  dialog.

  If a keypanel is connected to Cronus via an RVON-C card, the RVON-C card
  must be running firmware v2.3.0 or later in order to support more than
  64 keys.

  Support for keypanels with more than 64 keys has no impact whatsoever on
  trunking. An intercom with support for more than 64 keys per port can be
  trunked with other intercoms that only support 64 keys per port.

* Added support for adjusting IFB listen source levels

  From a keypanel, it is now possible to adjust the listen volume for
  an IFB with an AT assignment. This adjusts the volume of the crosspoint
  from the IFB's listen source to the keypanel's listen destination.

* Command-Line Protocol enhancements

  Command Line Protocol supports the following additional commands:
    - Query and set 6- and 8-character alphas and aliases
    - Query and set 8-Unicode alphas and aliases (if enabled in the intercom)
    - Query and set input alphas (all sizes) (if enabled in the intercom)
    - Query which ports have communicating keypanels (available as a normal
      status query and as a stored query)
    - Query and set the date and time
    - Support setup pages 10 and higher
  The CLP documentation has been revised to include descriptions of these
  revisions.

* Added new UPL condition: Is there a keypanel present on port X?

  
New in version 1.9.0
--------------------

* Added support for IFB tallies across trunking

  IFB interrupt status (and current interrupt priority) is now forwarded
  through the Trunk Master to all intercoms. This allows keypanels in
  intercom X to display the correct IFB status for IFBs in intercom Y
  (i.e. an in-use tally for an IFB which is being interrupted).

  To prevent a flood of IFB tally information from being generated, this
  feature is disabled by default. IFB tallies across trunking must be
  enabled individually for each IFB, via a new checkbox ("Remote Tallies")
  in the IFB edit dialog.

  In order for a keypanel in intercom X to display IFB interrupt status for
  IFB Z in intercom Y, the following conditions must all be met:
    - frames X and Y must both support IFB tallies across trunking
    - the TM-2000 must support IFB tallies across trunking
    - the "Remote Tallies" box for IFB Z must be checked

* Added support for 2 Trunk Masters

  The intercom can now be connected simultaneously to two independent
  Trunk Masters (where each independent Trunk Master can be a single
  stand-alone TM-2000, or an active/standby pair). This is configured via
  the Options | TM Communications menu item in AZedit.

  The two Trunk Masters operate independently. The intercom combines the
  data from both Trunk Masters, e.g. when selecting a remote key assignment,
  the key assignment grid shows a list of matrix names which combines
  the matrix names defined by each of the Trunk Masters.

  An intercom is told its own name by the Trunk Master. If the two Trunk
  Masters give the intercom different names, the intercom uses the name
  given it by Trunk Master #1 (as defined in the TM Communications dialog).

  Each intercom supports up to 31 remote intercoms. If the total number of
  intercoms defined by the two Trunk Masters exceeds this, one or more
  remote intercoms will be inaccessible. In this case, TrunkEdit will report
  the conflict when it detects this condition (and will warn the user if
  an attempt is made to define too many intercom names).

  Both AZedit and TrunkEdit will warn the user if both Trunk Masters attempt
  to define the same intercom port as a trunk port. In this case, each Trunk
  Master will force the conflicting trunk into maintenance mode.


New in version 1.8.0
--------------------

* Support for Unicode alphas

  Unicode alphas were previously only available in Japanese builds.  Now,
  you can enable Unicode alphas as part of the intercom configuration using
  AZedit V4.0.0.  Using Unicode alphas allows alphas to contain characters
  beyond the basic ASCII, including Cyrillic, Greek, and Latin (most European
  accented letters). These character sets are supported on keypanels like 
  the KP 32 CLD, KP 12 CLD, KP812-U, and KP-12/4U (Cyrillic only).


New in version 1.7.0
--------------------

* Added support for a separate CWW key for the KP 32 CLD

  The KP 32 CLD supports up to 64 talk and 64 listen keys, plus a separate
  call-waiting window key. In earlier versions, key 16 was the CWW key, and
  these two keys operated in parallel. Starting with KP 32 CLD v1.2.0,
  the intercom now supports a separate CWW key, and key 16 is now a regular
  talk/listen key.

  Note that the I/O card firmware (and any RVON firmware, if applicable) must
  be updated to a version that supports a separate CWW key. If any one of the
  devices (intercom controller, I/O card, or keypanel) does not support
  a separate CWW key, the system will operate normally, but the KP 32 CLD
  will operate without a separate CWW key (i.e. key 16 will be the CWW key).

* Resizing the intercom now provides information about remote alpha pool usage

  On the intercom reconfiguration dialog, when the Test button is pressed,
  information is now returned about the pool of memory used for remote alpha
  storage, including both the current usage and what the usage would be
  with the revised configuration.

* Fixed handling of remote intercom listening to IFB via AT

  If a panel on another intercom is listening to an IFB on this intercom
  via AT, and then the trunk is reallocated so that the panel listens to a
  different IFB via AT, the audio might not be switched properly. In this
  case, the panel would continue to hear the original IFB listen source, and it
  would be difficult to clear, since that IFB assignment no longer appeared as
  a key assignment on the trunk port. (Also, the panel would have to toggle the
  IFB listen key off and on before it would start hearing the new IFB listen
  source.) Fixed.

  Note that this problem was not easy to generate. It would typically
  occur when changing setup pages (or sending a new AZedit setup file)
  that resulted in changing the IFB assignment of a talk key while the listen
  key (with an AT assignment) was already on.

* UPL force-key actions cannot touch trunk ports

  In previous versions, a UPL statement with an output action to force a
  key on or off could interfere with trunking operation. Fixed.

* Improved flash handling

  On system start-up, if no valid configuration was found (e.g. a new
  version of firmware was just downloaded, and the saved configuration is
  not compatible with the new version), the processor might not wait
  long enough when erasing a flash sector, leaving the configuration flash in
  an unusable state. (The system would run, but it wouldn't be able to
  save the system size, and would come up with a blank setup the next time
  the processor was reset.) Fixed.


New in version 1.6.0
--------------------

* Support for MC/TM communications via Ethernet

  Cronus now supports communications with the TM-2000 via either
  serial or Ethernet. This can be configured from AZedit via
  Options | TM Communications.

  If serial communications is selected, the baud rate can be set from this
  dialog, rather than needing to reconfigure the intercom.

  If Ethernet communications is selected, you must specify the IP address
  of the TM-2000 (and also the IP address of the backup TM, if there is one).


New in version 1.5.0
--------------------

* Added support for keypanel colors

  The intercom now supports configuring colors used on the KP 32 CLD family
  of keypanels. The following can be configured:
    - default key assignment colors (per function type)
    - remote key assignment colors (per remote matrix + function type)
    - local key assignment colors (per local assignment)
    - colors for talk and listen indicators

* Added centralized auto-dials

     The intercom supports up to 999 centralized auto-dials. Associated with
     each auto-dial is an alpha, a scroll restrict flag, and a telephone
     number.

     Auto-dial number NNN can be accessed by dialing the sequence
       #NNN
     (Dial "##" to generate a single "#" DTMF tone.)

     Centralized auto-dial numbers can also be accessed via the TIF dial menus
     in the KP32 and the KP32CLD, for keys which have an assignment for which
     the "Port is a TIF" flag is set.

* Added arbitrary crosspoints

     An optional crosspoint (input port and output port) can be associated
     with each UPL Resource. If a crosspoint is defined, then that crosspoint
     is closed whenever any panel is talking or listening to that UR assignment.

     There is also a Reciprocal flag. If this flag is checked, then the
     reciprocal crosspoint (from the output port to the input port) is also
     closed.

     If a user at a keypanel tries to adjust the volume of a UPL Resource, it
     adjusts the volume of the crosspoint (if it is defined). The volume of
     the reciprocal crosspoint is not affected.

* Added "members only" flag to Assignment Groups

  Associated with each Assignment Group is a new checkbox, "Members Only".
  If this box is checked, then only keypanels that are members of the
  assignment group can access the assignment group. If the box is not checked,
  any keypanel can access the assignment group.

* Added support for more resources across trunking

  Remote scroll lists of up to 1000 items are now supported.

* Added support for more total resources

  In previous versions, an intercom was limited to approximately 2040
  total local scrollable resources (key assignments). This has been
  increased; now, the total number of resources is only limited by
  the available memory, although each scroll list (PL, IFB, etc.) is
  limited to a maximum of 1000 items.

* Fixed problem in Search and Replace

  Performing a search and replacing it with the same assignment (ie. replace
  N001 with N001) could cause the controller to reset if the assignment was
  was found on a listen key. Fixed.


New in version 1.4.0
--------------------

* Added support for GPIO-16 communications via Ethernet

* Added support for IFB program tracking

  A new configuration table allows IFB listen sources to automatically
  track IFB program sources. When an IFB program source is changed via
  a PAP or LCP-102, or via a UPL statement, the intercom looks up the
  new program source in the PGM Listen Source table; if there is a
  corresponding entry in this table, it is used to change the IFB listen
  source for the IFB.

  The PGM Listen Source table can be edited from AZedit via the
  PGM Listen Source entry in the System menu.

* Log destination (AZedit session) can now be configured

  Under the Logging menu, a new option "Configure Logging..." allows
  the user to specify which AZedit session receives log messages when
  logging to file is enabled.

  The only AZedit sessions which are allowed to configure the log
  destination are the AZedit session which is currently configured as the
  target for log messages, and the main serial AZedit session (connected
  to J1 of the ADAM MC break-out panel).

* Added support for splitting RVON DIP switch #1

  In RVON-C firmware v2.1.2 and later, DIP switch #1 has been split into
  two separate functions:
    - DIP switch #1: closed => AZedit cannot make any changes
    - DIP switch #2: closed => RVON card has the master configuration
  (If an RVON-C is plugged into the frame, and the RVON-C has a different
  configuration from the intercom, DIP switch #2 determines which
  configuration is used.) This version of firmware supports this change.
  If older MCII-e firmware is used, then AZedit cannot make changes to the
  RVON card if either DIP switch #1 or #2 is closed.

* AZedit can configure an RVON-C with an IP address of 0.0.0.0

  In certain cases, AZedit would not recognize an RVON-C card if it had
  an IP address of 0.0.0.0, which meant that the only way to configure
  the card was to first login via the serial port and set the IP address.
  Fixed.

* When dialing on a TIF across trunking, a hang-up request would not work
  for a TIF-951. Fixed. (The problem is associated with the intercom
  to which the TIF is connected, rather than the intercom from which the
  hang-up request was made.)

* Support wait-for-talk (trunking) with LKP-957 and PAM panels

  In trunking, if Wait For Talk is enabled, then listening to a port
  does not tie up a trunk if there is a keypanel connected to that port
  and that keypanel does not have any talk keys turned on. However,
  that doesn't work properly if the keypanel is a listen-only device
  such as a PAM-32 or LKP-957. (In such cases, the port output audio
  feeds the panel, while the input audio would typically be some
  unrelated source.)

  Fixed. When listening to a port, the listen request is always
  active if there is a listen-only device connected to that port.

* Key labels display properly on PAM-32, LKP-957 panels

  In previous versions, a key label might not be displayed properly on a
  PAM-32 or LKP-957 panel. Fixed.

* Fixed problem with stuck crosspoints when accessing remote PLs

  If two people in the same intercom access the same remote PL, and share
  a trunk, a crosspoint is closed in the local intercom as required for
  them to hear each other. However, in certain cases that crosspoint
  would not be released. Fixed.

* On the Remote Intercom Status screen, clearing remote assignments which
  are now scroll restricted sometimes wouldn't clear listen key
  assignments. Fixed.

* If a keypanel requests a list of hidden assignments, if there was an
  assignment "hidden" by the call-waiting window, it was not being sent
  to the panel properly. Fixed.


New in version 1.3.1
--------------------

* Added support for the new controller card

  With the previous version of the controller card, if the controller was
  downloaded or reset, then the USB cable would have to be disconnected
  and reconnected in order to restore USB communications. The new
  version of controller card fixes this. This version of firmware
  contains some minor enhancements to support this feature.

  This code will also work with the older controller card.

* New version of AIO firmware

  There are no functional changes, but some architectural changes
  were made to reduce EMI. There is no change to the AIO hardware.


New in version 1.3.0
--------------------

* Added support for the RVON-C card

* Added descriptions for PAPs/LCPs and I/O Cards

* UPL can generate /MACRO/START commands to Dynacord paging system

  New UPL actions have been added: Start Paging System Macro, and Stop
  Paging System Macro. When a UPL statement with one of these actions
  becomes true, a /MACRO/START command is transmitted on J1. Note that
  AZedit would need to be connected via USB or Ethernet in this case.

* Added support for audio sampling at either 44.1K or 48K

  For 48K sampling:
    - DIP switch #3 open
    - Jumper J33 between pins 1 & 2
  For 44.1K sampling:
    - DIP switch #3 closed
    - Jumper J33 between pins 2 & 3

  J33 is located just above and to the right of the DIP switches. Pin 1 of
  J33 is the pin closest to the DIP switches.


* Added support for SNMP

* If a hot-link to a slave frame goes down briefly and then comes back up,
  the I/O card version strings could be lost. Fixed.

* Fixed problem in handling of remote scroll lists

  If a remotely scrollable alpha (other than an alpha for a port) in another
  intercom was completely scroll restricted, another remote scroll list
  could potentially be corrupted. AZedit would see the correct list, but
  a keypanel accessing the list might not see the complete list. Fixed.

* If a person talks to a special list, and they are a member of that SL,
  they now do not hear themselves. (However, they will hear themselves if
  they listen to the SL.)


New in version 1.2.6
--------------------

* Squelch didn't work on odd-numbered channels - Fixed.

  See version 1.1.0 for a description of VOX and Squelch.


New in version 1.2.5
--------------------

* Prevent loss of audio when hot-swapping cards

  If an AIO card was plugged in or removed while the system was in operation,
  it was possible for another AIO card to stop passing audio. Fixed. If need
  be, the affected AIO card is rebooted.

* LCD display could go blank

  At system start-up, the LCD could go blank, requiring the processor
  to be reset in order to recover. (This would typically only happen
  when the system restarted after downloading a new firmware image.)
  Fixed.


New in version 1.2.4
--------------------

* Fixed minor problems in handling keypanel version strings

  If a keypanel which reported a version string (such as a KP32) was
  disconnected, and replaced with a keypanel which didn't report its
  version (e.g. a KP96 with older firmware), AZedit would report the
  original version string.

  Keypanels which don't provide version strings now show up as "Unknown"
  rather than "n/a".


New in version 1.2.3
--------------------

* New version of AIO-8 firmware

  Some improvements have been made in the AIO-8 firmware to eliminate
  communications errors between tha AIO-8 and the Controller card.

* Vox wasn't working for slave frame ports. Fixed.


New in version 1.2.2
--------------------

* New version of AIO-8 firmware

  A memory corruption problem in the AIO-8 firmware could cause various
  problems (e.g. AIO-8 card doesn't boot up; AIO-8 communicates with the
  Controller but keypanels connected to the card wouldn't boot up). Fixed.

* Keypanel BER counters (error rates) for ports 1-16 were never being
  cleared. Fixed.

* If a keypanel was detected as babbling (sending continuous keypress and
  key release messages, indicative of a hardware problem), a message
  indicating this was displayed on the panel, but the message itself
  was garbled. Fixed.


New in version 1.2.1
--------------------

* New version of AIO-8 firmware

  The AIO-8 card would occasionally force keypanels to be repowered.
  Fixed.


New in version 1.2.0
--------------------

* Added support for authentication

  The intercom an be configured via AZedit V3.x.x with a table of user
  names and passwords. Users can be flagged as administrators, and/or
  requiring restrictions files. Authentication can be enabled/disabled
  globally, and individually on USB and Ethernet sessions.  The J1 session
  never needs authentication. Only administrators (or users on
  unauthenticated sessions) can change the authentication table.
  AZedit can query a list of connected users.


New in version 1.1.0
--------------------

* Added VOX support

  UPL can test for audio present on an input.

  If VOX is enabled on a port, and that port is a 4-wire port (i.e. audio
  only), then talk key #1 for that port will be turned on whenever
  incoming audio is detected on that port. Also, if VOX is enabled on a
  port, then squelch is also turned on for that port (the audio is
  suppressed if it is below the VOX threshold).

* New UPL condition: Any talk key closed?

  UPL can now test to see if any of the talk keys for a port are currently on.

* Added front-panel control

  The front-panel shaft encoders can be used to configure the following:
    - Analog input & output gains
    - IFB program inputs
    - VOX settings

  AZedit can be used to set a password for access to these items. To enter
  a password, rotate the right-hand encoder to adjust the current character.
  Click the right-hand encoder (or rotate the left-hand encoder clockwise)
  to enter the current character. Click the left-hand encoder once all
  characters have been entered. Rotate the left-hand encoder counter-
  clockwise to delete a character.

* Added key labels

  Normally, a keypanel displays the alpha for the function assigned to talk
  level 1. This version supports arbitrary key labels. If a key has a
  label associated with it, the keypanel displays the key label, rather
  than the alpha for the talk level 1 assignment. If the key is reprogrammed,
  either from the panel or via AZedit, any associated label is deleted.

  No changes to keypanel firmware are required to support key labels.

* Added Do Not Interrupt

  Associated with each port is a Do Not Interrupt flag. If this flag is
  set, only one point-to-point call at a time is permitted to that port.
  If panel A is talking to panel B, and B has Do Not Interrupt set,
  panel C will get a busy tally if it tries to call B.

  In a trunked environment, trunk calls ignore Do Not Interrupt, i.e. trunk
  calls always go through.

* Added Snoop tallies

  An intercom can now be configured to enable Snoop Tallies. A panel
  displays a snoop tally if all of the following conditions hold:

    - The keypanel has a hot mic
    - None of the keypanel's keys are on
    - Another keypanel is listening to the panel via a point-to-point
      or a special list, but is not talking to the panel

  The snoop tally is indicated by turning the Mic Mute LED amber. Snoop
  tallies require KP-32 v2.0.2 or later.

  In a trunked environment, snoop tallies may not always be displayed.
  If a panel displays a snoop tally, then someone is listening to that
  panel; however, depending on how trunks are allocated, it is possible
  for a keypanel in one intercom to snoop on a keypanel in a different
  intercom, without a snoop tally being displayed.

* Support for revised AIO-8 hardware, with increased output trim range

  Cronus now supports an output trim range of +/-20dB for Rev D cards,
  or +12/-20dB for older cards.


New in version 1.0.5
--------------------

* Improved communications with AIO-8 card

  It was possible for the controller to lose communications with one or
  more AIO-8 cards when the system was busy, causing it to restart the
  cards and briefly interrupt the audio. Fixed.


New in version 1.0.4
--------------------

* New version of FPGA for AIO-8 card - improves timing


New in version 1.0.3
--------------------

* Fixed keypanel communications problem

  In version 1.0.2, a communications problem could affect keypanel polling
  on arbitrary ports, which could prevent keypanels from powering up.
  Fixed.


New in version 1.0.2
--------------------

* Improved audio handling

  Audio levels have been adjusted to increase the headroom before clipping
  occurs. Available input and output trim ranges are now:

    Input trim range:  -20dB to +20dB
    Output trim range: -20dB to +12dB

* Fixed problem in downloading TIF-2000

  A firmware download to the TIF-2000 would frequently fail. Fixed.

* New version of boot downloader

  This release includes a new version of the boot downloader, which fixes
  a minor display problem on the LCD. Note that downloading this release
  via AZedit does not touch the boot downloader. The boot downloader can
  be updated either by using an in-circuit programmer to reprogram the
  flash, or by downloading the boot downloader itself (available as a
  separate firmware release).


New in version 1.0.1
--------------------

* Enable on-board GPIO support in slave frames

  In frame 1, on-board GPIOs map to GPIOs 1-4. Frame 2 on-board GPIOs
  map to GPIOs 5-8, frame 3 on-board GPIOs map to GPIOs 9-12, etc.

* Made audio handling more robust

  In certain cases, it was possible for an AIO card to stop pass audio
  and/or stop communicating with the Controller card. Fixed.


New in version 1.0.0
--------------------

* Adjusted input, output trim ranges

    Input trim range:  Now -14dB to +26dB
    Output trim range: Now -20dB to +12dB.


New in version 0.3.1
--------------------

* Support PAM-32 (split-panel operation) and RTS ISDN 2002 devices

  The Cronus intercom has individual UARTs for each port, and expects a
  single device (keypanel, TIF, etc.) to be connected to a port. However,
  certain devices support 2 channels of audio, and respond at 2 separate
  polling IDs. These include the PAM-32 (when operating in "split" mode,
  with the two halves of the panel controlling audio for separate ports)
  and the RTS ISDN 2002 (since one ISDN line supports 2 separate audio
  connections).

  Cronus now supports devices such as these. In order to use such a
  device:

    - The device must be configured to respond at 2 consecutive polling
      IDs (e.g. IDs 1 and 2)
    - The device can use a pair of consecutive Cronus ports on the same
      the same AIO card
    - The device must be plugged into the lower-numbered port
    - There must be no device connected to the higher-numbered port
      (i.e. the higher-numbered port should be wired for audio, but not data)

* Wrong data was being sent to keypanels for local GPIOs 5-16. Fixed.


New in version 0.3.0
--------------------

* Added the following new features:
    - IFB Special Lists
    - Assignment Groups
    - PAP-32 can be configured via AZedit
    - Key assignment search & replace
    - 16 local GPIOs per port
    - AZedit can mark ports as not trunk ports (if there is no Trunk Master
      communications)
    - When a port becomes a trunk port, its key assignments and IFB priority
      are saved; they are subsequently restored if the trunk to that port
      is undefined.
    - If a keypanel is plugged into a trunk port, it displays a message to
      that effect. It also displays a message if the port it is connected
      to becomes a trunk port.

* Increased range of analog output trims

  The range for analog output trims used to be -20dB to 0dB. This has been
  extended; it is now -20dB to +6dB.

* Added support for a boot downloader

  See the description above for further details


New in version 0.2.1
--------------------

* Improved alarm handling (Japanese version only)

  On-board GPI #2 (previously unused) now generates an alarm if an
  excessive number of errors occur when communicating with the I/O cards.

  If one alarm was asserted, any previously asserted alarm would be
  turned off. Fixed. Now, an alarm stays asserted until it is cleared,
  either by asserting the corresponding on-board digital input, or by
  asserting the clear-all input (on-board digital input #1).

  Alarm #1 which might normally be asserted during initialization (e.g. if
  the saved setup file was corrupt) was sometimes being suppressed. Fixed.

* Bug fix: Certain panels can't scroll until something is in the CWW

  For KP-96-series panels, if the CWW is empty, the scroll keys (6 and 9)
  don't do anything. You have to first get something in the CWW, either
  by having an incoming call go to the CWW, or by programming the CWW
  directly (e.g. NUM-1-PGM-CWW). Once something is in the CWW, scrolling
  works normally.

  The KP-32 is not affected.

* Bug fix: Panel scroll lists aren't updated when a P-P alpha is changed

  When 1 or more local P-P alphas are changed, the keypanels' scroll 
  lists are not necessarily updated. More specifically, if the alphas for a 
  block of ports N through M are changed, keypanels do not get their 
  scroll lists updated for ports N through N+8. Any existing key 
  assignments will be updated, though.

  This problem only exists in version 0.2.0.

* Eliminated support for IFB tone override inputs


New in version 0.2.0
--------------------

* Added support for PAPs, LCP-102s, and UIO-256s in slave frames

  UIO-256s can be connected to J4 of any Cronus frame. If UIOs in
  different frames have the same polling ID, their relays operate
  in parallel; and their GPI inputs are logically OR'd together
  (a GPI input is asserted if it is asserted on any of the UIOs with
  the duplicate IDs).

  LCP-102s, PAP-32s, and standard PAPs can be connected to J4 of
  any frame, allowing for a total of 15 devices per frame.

  The system also supports up to 5 PAP-32s on J5 of any frame.
  Communications on J5 is at 9600 baud, allowing for easier remoting
  of the data, if required.


New in version 0.1.4
--------------------

* New firmware image for the AIO card processor (v0.0.5). This incorporates
  three changes related to the SDRAM:

  1. The configuration parameters for the SDRAM controller were changed
     to fix a problem accessing the SDRAM (use processor clock, CAL = 1).

  2. The SDRAM test has been changed to an alternate type with fewer passes:
     the first pass fills each DRAM memory cell with its address, and
     the second pass verifies this.

  3. The test covers the full address range supported by the larger flash
     chips used in rev. 2 hardware (MT48LC8M16A2-75).


New in version 0.1.3
--------------------

* New firmware images for the on-board master controller FPGA and
  crosspoint DSPs to fix some audio problems.

* Support extended keypanel type reporting (initially to support
  PAM-32 keypanels).


New in version 0.1.2 - Unicode (demo release)
---------------------------------------------

* Fixed bug in powering up KP-812 family keypanels.  If a keypanel had too
  many non-NULL key assignments, the panel might not get the assignments
  at powerup.


New in version 0.1.1 - Unicode (demo release)
---------------------------------------------

* Support for Unicode.  Cronus now supports 8 Unicode character alphas for
  use with the KP-812 keypanel family (capable of displaying Japanese/Kanji,
  as well as Traditional and Simplified Chinese characters).

* Support for Extended feature set (J6), including Groups, Autodials,
  enhanced Special Lists, Leave Listen Active, and other features.

* Support for independent tally configuration options

  There are now separate configuration options to determine whether trunks
  that are in use generate a tally; whether off-hook TIFs generate a tally;
  and whether local PLs generate a 10-second incoming call tally or an
  indefinite tally. These used to all be controlled by a single configuration
  option.

* Improved crosspoint DSP and FPGA firmware, boots DSPs more reliably.


New in version 0.1.0
--------------------

* Hotlink licensing. Cronus now requires a license file to be installed
  in order to enable the hotlinks to other frames and the corresponding
  multiframe functionality. When idle, the LCD display will show
  "Cronus Intercom", "Stand-alone Frame" to indicate that no license to
  enable hotlinks has been installed. In standalone mode, the following
  functions are not available via the LCD menus:
	1. Changing the frame ID (a standalone frame always acts as frame 1).
	2. Display the status of other frames
	3. Display the link status

  To enable the hotlinks and restore multiframe capability, a license file
  must be generated and installed. Once a license file is installed, it
  will persist unless cleared by performing a "first birthday" on the unit.

  Cronus license files can be created using a new version of TMKey (version
  1.01.00). A Cronus license file is tied to from one to four individual
  Cronus units by including their Ethernet hardware addresses (so a single
  license file can be used to enable hotlinks for all the individual Cronus
  units in a mutltiframe Cronus system). Thus, before generating a Cronus
  license file, you must obtain the unit's hardware Ethernet MAC address
  (e.g. using AZedit v2.06.06 invoke the "Options|Ethernet Setup..." dialog).

  Once a license file has been generated, it can be downloaded to a Cronus
  unit using AZedit v2.06.07 (or later). Invoke the menu command
  "Options|Download License...". This will bring up a standard file open
  dialog which allows you to choose a license file to be downloaded.
  After selecting a file to be downloaded, a message box will appear to
  indicate whether the operation was successful or not (this will take
  roughly 5 seconds for a successful operation). AZedit will not display
  the "Download License..." command for Cronus units that already have a
  license installed. As soon as a valid license has been installed, the
  hotlinks and multiframe capabilities will be enabled. 

  Cronus units with an installed license file take about 5 seconds longer
  to boot up (due to the time required to verify the digital signature
  that is part of the license).


New in version 0.0.6
--------------------

* Added support for AZedit communications via Ethernet and USB


New in version 0.0.4
--------------------

* Modified to support new (Rev 2) hardware

* Frame ID defaults to frame 1. Frame ID can be set via shaft encoders.

  Frames do not have to be contiguous (e.g. frame 1 can be connected to frame
  3). However, frames must be in increasing order (e.g. you cannot connect
  frame 1 to frame 4, and connect frame 4 to frame 3).
