Raffaele Cecco is a programmer who produced some of the best video games for the ZX Spectrum computer in the late eighties. Among others, he developed the highly acclaimed Cybernoid and Exolon.
Raffaele is turning 50 on May 10, 2017. This challenge is a small tribute to him, for the happy hours that many of us spent playing those terrific games, and for the motivation they brought.
The challenge
The purpose is to produce a rectangular marquee inspired by that seen in Cybernoid's main menu screen, but in ASCII art.
Specifically, the string "Happy birthday Raffaele Cecco "
(note the final space) will be shown rotating along the edges of an 12×5 rectangle, with a constant pause time between snapshots.
For example, assuming the text is displayed clockwise and rotated counter-clockwise (see options below), here are three consecutive snapshots of the rectangular marquee:
Happy birthd
a
o y
c
ceC eleaffaR
then
appy birthda
H y
o R
cceC eleaffa
then
ppy birthday
a
H R
a
occeC eleaff
and so on.
Rules
No input will be taken. Output will be through STDOUT or equivalent, or in a graphical window.
The output should actually depict the text rotating; that is, each new snapshot should overwrite the previous one to give the impression of movement. This can be done by any means, for example, by writing the appropriate number of newlines to effectively clear the screen. It's acceptable if this is valid only for a given screen size; just specify it in the answer.
The following options are accepted:
- Text can be displayed clockwise or counter-clockwise, and can be rotated clockwise or counter-clockwise (the example snapshots above assume clockwise displaying and counter-clockwise rotating).
- Rotation should go on cyclically in an infinite loop (until the program is stopped), and can start at any phase.
- Pause time between snapshots should be approximately constant, but can be freely chosen between 0.1 and 1 s. An initial pause before displaying the first snapshot is acceptable.
- Letters can be upper-case, lower-case or mixed case (as in the example above).
- Leading or trailing blank space is allowed.
Programs or functions are allowed, in any programming language. Standard loopholes are forbidden.
If possible, please provide a gif file showing the output, or a link to test the program.
Shortest code in bytes wins.