Low level

This page lists the features that are closely related to the hardware:


The display contrast is adjustable via the menu (setting will also be saved).

The display backlight can be configured to “always off”, “always on” or “automatic”. In the latter case, the light will be active for 15 s after pressing a key or after the computer has made its move. In analysis mode, a new search depth triggers the backlight for 30 s. Besides, there is a dedicated light key which will switch on the light for 30 s, also while the computer is thinking. The exception is when the batteries are already low, then the backlight is not available.

The buzzer can be configured to “on”, “keyboard click only”, “computer signals only” or “off”.

Battery control

The battery status is monitored as to avoid damaging them by NiMH over-discharge; NiMH are quite sensitive here:

  • A dialogue box will open when the voltage drops (at 1.08 V per cell). From now on, about 25 minutes of playing time will remain, assuming computing time and user time to be roughly equal.
  • The display will show “BAT”.
  • If over-discharge is ahead (at 1.00 V per cell), a dialogue box will tell the user to switch off the device. The system will shut down afterwards and can only be restarted by a power cycle.
  • After switching the device on and when starting a new game, the CPU frequency will be ramped up for testing the batteries. If the voltage is less than 1.10 V per cell during this load stress test, no new game is possible because the batteries would drop out anyway, and the device will tell the user to switch it off.
  • In case of weak batteries, the display backlight and overclocking are disabled.

The configuration is still available after changing the batteries. Wrong battery polarity is caught in hardware without damage. The overvoltage protection (both polarities) will make the relevant fuse melt down. Both power sources (wall plug adapter input and battery) feature their own fuse.

Battery life

The expected battery running time is 37 hours, and that is already a pessimistic estimation. Let me explain the underlying assumptions:

  • Technical data: 18 mA current draw in user mode, 81 mA when computing, 28 mA for the display backlight. NiMH batteries offer 1.25 V per cell, so they deliver the 5 V which the current draw is rated at.
  • The batteries are NiMH batteries (AA size) with a nominal capacity of 2200 mAh each, and the usable capacity is 90 % of the nominal one.
  • The display backlight setting is “automatic”, and it is only active when the user enters his moves, which takes 5 seconds, and when the computer announces its moves.
  • The playing mode is the long tournament mode at 40/120,20/60+30 (moves/minute plus minutes). The thinking time for the user and the computer is equal, namely 3.5 hours. Of course, in “time per move” mode with much more thinking time for the user than for the computer, a longer running time will result.
  • A game is expected to take 80 full moves. So the display is active for 80×15 s with the computer and 80×20 s with the user, which yields 22 mAh.

With these data given, the user mode draws 3.5 h × 18 mA, which is 63 mAh. The computer will take 3.5 h × 81 mA, that gives 283 mAh. All in all, one game needs 368 mAh.

That means 5.4 tournament games are possible, and at 7 hours per game, this gives a running time of 37.5 hours.

Note: speed settings above 100 % (overclocking) will decrease battery life, those below (underclocking) will increase it.


A hardware watchdog timer will enforce a system reboot if the software should “hang”.

Reset analysis

When booting, the CT800 checks why it has been reset. Anything but a power interrupt or an intentional system reset will bring up a dialogue that informs the user about the reset cause. So during normal operation, there will be no annoying dialogue, but things like a loose pull-up resistor for the reset pin will be easier to troubleshoot. Also, unintentional watchdog resets which point to a software problem can be identified.

Power-on self test

The idea is to simplify the troubleshooting if the hardware is damaged. RAM, ROM, the external quartz oscillator and the keypad are checked. The keypad check is geared towards detecting “stuck” keys. If something is wrong, a dialogue box will notify the user about what has failed, but the system will not be disabled.

Even when the external quartz is not there, the system will run nearly as normal, except for slightly less precise timing. Stuck keys are another matter since they render the keypad useless. Besides, the LEDs are switched on, and if the buzzer is configured to “on”, there will be a short beep.

Crash reports

In case of a system crash, the CT800 has the equivalent to a kernel panic or a bluescreen, i.e. a dialogue box that identifies the faulting program address as well as a fault status register code. This enables useful bug reports for possible spurious crashes since the linker mapfile will already tell which function the crash was happening in.


Instead of ramping up to the regular 168 MHz (100 %) when the computer is thinking, the speed can be configured within a wide range from 10 % to 140 %.

As to prevent “bricking” the device, configured overclocking is only active after the user could have accessed the menu for setting the clock rate back to 100 % or lower.

Upon configuring an overclocked mode, a firmware CRC check is performed in order to test the system reliability. If overclocking is configured, this check will be repeated before every computer move. This is so fast that it does not cause any noticeable slowdown.

In case of non-crashing CRC calculation failures, overclocking will be disabled automatically, along with a notification dialogue box. Of course, this is not completely bulletproof, but it is a strong indicator.