Make me a scrolling marquee Introduction

Remember the roaring 80's? I mean, you know, like 30 years ago? No cell phones, no internet, no ATM's, fluorescent clothing (what was that?!) and scrolling marqee's! No, no, no! Not the online ones, but real ones, With LED lights. 



Since I'm in a nostalgic mood, I'd like you to create a scrolling marquee.

Challenge

Create a program where you can enter a one line string. You program needs to create a 80 character wide scrolling marquee, repeating the text if necessary.

Rules


The user must be able to enter a string to your program as input. The string can be a command line parameter or a string entered while running the program.
Your program must continuously print a string of exactly 80 (visible) characters.
The string must be updated every 0.1 second (more or less; I won't be timing it), shifting the characters every iteration one position to the left.
The string "rotates". At the end of the user supplied string, another instance of the string must appear.
You program must print it's output on one line, without linefeeds (use a '\r' instead of a '\n')
Your program must run ad infinitum, until an user interrupt.
This is a codegolf, so shortest code in bytes wins.
There is a 10% bonus (rounded up to the next integer) for printing in red on a black background.
Standard loopholes apply.


Reference implementation in Python 2.7

This program isn't golfed, but it provides a reference implementation (and thus an upper limit to the size).

import time,sys
s=raw_input()*99
while 1:
    for i in range(80):
        print s[i:i+80]+'\r',
        sys.stdout.flush()
        time.sleep(0.1)
PowerShell, 118 113 112 108 102 101 99  96 - 10% = 86



Code

$s=(Read-Host)*180;for(){Write-Host($s.substring(($i=++$i%80),80)+"`r")-N -F R -B 0;sleep -m 99}


With the caveat that it now begins the first loop with the second character; The rules don't say it has to start from the front of the string, and the first one is included overall, so that's fine by me. I will get it to 100 chars somehow - edit: thanks @ConnorLSW for the edits to get it below 100.

Instructions


Run PowerShell (normal console, it doesn't work in PowerShell ISE)
Paste the single line version into PoSH, press enter
Type a message, press enter
Ctrl-C to break


Output


  


Notes

A more readable version with the variable names and parameters filled out a bit:

$test = (Read-Host) * 180
for () {
    Write-Host ($text.substring(($i=++$i%80), 80)+"`r") -NoNewLine -ForegroundColor Red -BackgroundColor Black
    sleep -Miliseconds 99
}



The parameters only need to be long enough to be unique, so -F R is unique enough to set a Red ForegroundColor, for example.
'Black' has to be 'Bla' to be unique compared to 'Blue', but -B 0 sets it to color Enum value 0 which is interpreted as Black.


Alternative, more 'correct' marquee:

The reference code doesn't handle strings longer than 80 characters nicely, skipping anything in the message past ~160 characters, and it glitch-resets every 99*len(string) characters. e.g. if the sign width was 5 characters long, it does this:

   here is my long test input
 0 |here |            
 1  |ere i|          ^^^^ never shown
 2   |re is|
 3    |e is |
 4     | is m|
 0 |here |
 1  |ere i|
    ...


This version indexes modulo the text length instead of the sign width, so it runs through the whole string. 106 - 10% = 95 chars.

$l=($s=Read-Host).Length;for(){Write-Host(($s*160).substring(($i=++$i%$l),80)+"`r")-N -F R -B 0;sleep -m 99}


Alternative: sign which cycles like the .gif in the question, 118-10%=106

Because it looks better.

$s=' '*80+(read-host)+' '*80;for(){write-host($s.Substring(($i=++$i%($s.length-80)),80)+"`r")-N -F R -B 0;sleep -m 99}