Short: Animated polar clock and screen blanker Author: René Thomsen Uploader: René Thomsen Type: util/time Version: 0.12.6 Requires: AGA or RTG, 68020+, screen with 32+ colours Architecture: m68k-amigaos >= 3.1.0 Distribution: Aminet Kurz: Animierte Polaruhr und Bildschirmschoner PolarClock 0.12.6 ================= Developed by René Thomsen. Released 9 November 2026. PolarClock is a polar clock for AGA Amigas. Six concentric rings fill up clockwise from 12 o'clock, from the outside in: seconds, minutes, hours (24h), day of week, day of month, month Every ring moves smoothly: the seconds ring sweeps at 25 frames per second and each ring includes the progress of the finer units below it. The rings are anti-aliased, and the time (HH:MM) and date (DD.MM) are shown in the centre in smooth graphical digits, in the colours of their rings. PolarClock is also a commodity and a screen blanker: after a chosen idle time it shows the clock fullscreen until you touch the mouse or keyboard. If you already use Garshneblanker, the clock is also included as a Garshneblanker module. Features -------- - Smooth, anti-aliased rings (9 shades on 256-colour screens) - Five colour schemes: Classic, Fire, Water, Ice, Earth - Resizable window or fullscreen on its own 256-colour screen - Screen blanker after 1, 2, 5, 10 or 30 minutes of inactivity - Module for the Garshneblanker screen blanker - Commodity: controlled from Exchange, with hotkeys - Settings are remembered between runs - Only the parts that change are redrawn: low CPU use, no flicker - Circles stay round in HiRes, interlaced and RTG screen modes Requirements ------------ - An AGA Amiga (A1200, A4000, CD32) or an RTG graphics card - A 68020 or better (every AGA Amiga has one); no FPU needed - Kickstart/Workbench 3.1 or newer - A Workbench or public screen with at least 32 colours. 256 colours looks best: set it in Prefs/ScreenMode. Fast RAM helps a lot when running fullscreen on a 640x512 256-colour screen, because that display mode leaves little chip RAM bandwidth for the CPU. Installation ------------ Double-click Install-PolarClock in the PolarClock drawer. It needs the Installer program in C:, which comes with Workbench 3.1 and newer. - Novice users get PolarClock in SYS:Tools/PolarClock, without further questions. If Garshneblanker is installed (its Blankers drawer in SYS:WBStartup, where its installer puts it, or SYS:Blankers), the Garshneblanker module goes there too. - Intermediate and expert users choose where PolarClock goes, whether it starts at boot (as a clock window, or hidden as a screen blanker after 5 minutes), and whether and where to install the Garshneblanker module. An existing PolarClock icon is kept, so its tooltypes stay as you set them. To install by hand, copy the PolarClock drawer anywhere, for example to SYS:Tools/. To start the clock or the screen blanker at boot, copy PolarClock and PolarClock.info to SYS:WBStartup/. The icon already has the DONOTWAIT tooltype. The Garshneblanker module is in the Garshneblanker drawer: see "Garshneblanker module" below. The manual is PolarClock.guide (AmigaGuide; double-click it to read it in MultiView). Usage ----- Double-click the icon, or from the Shell: PolarClock [LEFT=n] [TOP=n] [WIDTH=n] [HEIGHT=n] [PUBSCREEN=name] [FPS=n] [NOTEXT] [SCHEME=name] [SHOWEMPTY] [FULLSCREEN] [BLANKER=minutes] [CX_POPUP=YES|NO] [CX_POPKEY=key] [BLANKKEY=key] [CX_PRIORITY=n] [NOVSYNC] [TEXTSTYLE=GEOMETRIC|DOTS] [TEXTCOLOR=RINGS|GREY] [CLOCK=12|24] [DATEORDER=DM|MD] [WEEKSTART=MON|SUN] Run >NIL: PolarClock ; start in the background From Workbench the same options are read as tooltypes. Tooltypes in parentheses, such as (FPS=25), are disabled: remove the parentheses in the icon's Information window to use them. WIDTH, HEIGHT Inner window size. Without HEIGHT the window gets the height that makes the clock round on your screen mode. PUBSCREEN Open on this public screen instead of the Workbench. FPS Frame rate, 1 to 50 (default 25). Lower it on slow machines. SCHEME Classic, Fire, Water, Ice or Earth. NOTEXT Hide the time and date (also TEXT=NO as a tooltype). TEXTSTYLE Digits: GEOMETRIC (smooth strokes) or DOTS (dot matrix). TEXTCOLOR RINGS (each number in its ring's colour) or GREY. CLOCK 12 or 24-hour digits (default: from Locale prefs). DATEORDER DM (day first) or MD (month first) (default: Locale). WEEKSTART MON or SUN: where the weekday ring starts (default: Locale). SHOWEMPTY Show the empty part of each ring as a grey track. FULLSCREEN Start fullscreen. BLANKER Screen blanker idle time in minutes (0 = off). CX_POPUP=NO Start hidden, e.g. to run only as a screen blanker. CX_POPKEY Hotkey that shows the window (default: ctrl alt p). BLANKKEY Hotkey that blanks the screen (default: ctrl alt b). CX_PRIORITY Commodity priority (default 0). NOVSYNC Don't wait for the vertical blank before updating the screen. Saves a little latency; may show tearing. Keys in the PolarClock window: T Toggle the time and date F Toggle fullscreen Esc Leave fullscreen (in a window: quit) Q Quit Menus ----- Project About... Version and author Blank now Start the screen blanker now (Right-Amiga B) Hide Close the window, keep running (Right-Amiga H) Quit Quit PolarClock (Right-Amiga Q) Settings Color scheme Classic, Fire, Water, Ice, Earth (Right-Amiga 1-5) Show time and date Time and date in the centre (Right-Amiga T) Text style Geometric or Dot matrix digits Text colour Ring colours or Grey Hide empty rings Draw only the filled part of each ring (Right-Amiga E) Fullscreen Window or full screen (Right-Amiga F) Screen blanker Off, or after 1, 2, 5, 10 or 30 minutes PolarClock follows your Locale preferences: 12 or 24-hour time, the order of day and month and the separator between them (. / or -), and whether the week starts on Monday or Sunday. Without a country set in Locale prefs, Workbench uses American formats (12-hour, month/day). The CLOCK, DATEORDER and WEEKSTART options override the locale. The window opens where it was last closed, with the same size; this is saved in ENVARC:PolarClock.window. LEFT, TOP, WIDTH and HEIGHT override it. Menu settings are saved in ENVARC:PolarClock.scheme, PolarClock.text, PolarClock.textstyle, PolarClock.textcolor, PolarClock.empty and PolarClock.blanker, and are used next time. A tooltype or Shell option overrides the saved setting. Default settings ---------------- Colour scheme Classic Time and date shown, geometric digits in ring colours Empty rings hidden Display window (first time: top right of the screen, 1/4 of its width, at least 200 pixels wide; after that where it was last closed) Time and date 12/24 hours, date order and first weekday from the Locale preferences Frame rate 25 frames per second Screen blanker off Hotkeys ctrl alt b (blank now), ctrl alt p (show window) Screen blanker -------------- Choose an idle time in Settings > Screen blanker, or use the BLANKER tooltype. When there has been no key or mouse input for that long, PolarClock shows the clock fullscreen and hides the mouse pointer. Any key or mouse movement brings back what was there before. While the blanker is on, the close gadget hides the window instead of quitting, so the blanker keeps running. Use Project > Quit, Exchange, or the Q key to quit. Starting PolarClock a second time shows the window of the copy that is already running. To use PolarClock only as a screen blanker, put it in WBStartup and enable the tooltypes CX_POPUP=NO and, for example, BLANKER=5. Garshneblanker module --------------------- Garshneblanker (Aminet util/blank/GBlanker36.lha) is a screen blanker with many blanker modules. The Garshneblanker drawer holds PolarClock as one more module, so you can use the clock from Garshneblanker instead of, or as well as, PolarClock's own screen blanker. To install it, copy the three files PolarClock, PolarClock.ifc and PolarClock.txt from the Garshneblanker drawer to Garshneblanker's Blankers drawer (the one in its BLANKERDIR tooltype). Then open Garshneblanker's window with its hotkey and choose PolarClock from the list of blankers. Prefs sets the module's options and Info shows PolarClock.txt. Prefs needs the BGUI version of Garshneblanker with bgui.library (Aminet dev/gui/bgui.lha), or the MUI version with MUI. The module has these settings: colour scheme, time and date shown or hidden, text style, text colour, empty rings hidden or shown, and the screen mode. They are saved by Garshneblanker in Blankers/PolarClock.prefs and are separate from PolarClock's own settings. Without saved settings the module uses PolarClock's defaults and the mode of the front screen. 12/24 hours, the date order and the first weekday follow your Locale preferences. Choose an AGA or RTG screen mode for the module: it draws on a 256-colour screen of that mode, or at least 32 colours. With other modes, such as ECS modes or HAM, Garshneblanker blanks the screen to black instead. Like every Garshneblanker module, it also stops and blanks to black when other programs need the processor. The screen blanks at once. On a 68020 the rings then fill in from the top and bottom edges over about 11 seconds on a 640x512 screen, while PolarClock prepares its picture (see "How it works"). The same is true of PolarClock's own screen blanker. With fast RAM, PolarClock keeps what it prepared, so the next blank fills in sooner. The module is a separate program from PolarClock itself and needs only Garshneblanker. It doesn't use PolarClock's commodity, hotkeys or menus. Colours ------- PolarClock shares the screen's colours: it asks for the colours it needs with ObtainBestPen and gives them back when it quits. On a 256-colour screen it uses about 50 pens with empty rings hidden (about 100 with SHOWEMPTY). On a 32 to 128-colour screen it uses fewer shades. If there are not enough free colours, PolarClock tells you; closing other programs that use many colours, or switching to 256 colours, helps. How it works ------------ When the window opens or changes size, PolarClock calculates for every pixel its angle and how much of it each ring covers, using integer maths only. Each frame it then redraws only the pixels of the rings whose arc ends moved, looks up the colours in pre-calculated colour ramps and writes them straight into the bitplanes of an off-screen buffer. Frames are timed with the E-clock, so the clock keeps its speed even when a frame takes longer. Slow work is spread over many frames, so the clock never stops: the per-pixel calculation when the display opens (on a fast CPU it is done at once; on a 68020 the rings fill in as it goes), the digits for the next minute, which are prepared while the current minute is shown, and erasing a ring that starts again at 12 o'clock: the old arc then retracts towards 12 o'clock over a few frames, or a few seconds on a 68020 with a large screen. During such work PolarClock runs at one priority lower, so other programs stay responsive. In fullscreen PolarClock uses two screen buffers: each frame is copied into the hidden one, which is shown at the next vertical blank, so the display never shows a half-drawn frame. In a window, each screen update starts at the vertical blank (turn this off with NOVSYNC). Copyright and licence --------------------- PolarClock is (c) 2026 René Thomsen. All rights reserved. PolarClock is freeware: - You may use it free of charge, privately and commercially. - You may copy and distribute it, but only as the complete, unmodified archive. This includes Aminet and its CD/DVD collections, magazine cover disks and download sites. - You may not sell it on its own. Charging a small fee for the media or for a collection it is part of is fine. - You may not modify, disassemble or redistribute parts of it. PolarClock is provided "as is", without warranty of any kind. You use it at your own risk; the author is not liable for any damage or loss of data resulting from its use. History ------- 0.12.6 (10.11.2026) - First public release. Author ------ René Thomsen