#!/bin/ksh -p IFS='' SPACES="__________" ;: ten "spaces" SPACES="$SPACES$SPACES" ;: 20 SPACES="$SPACES$SPACES" ;: 40 SPACES="$SPACES$SPACES" ;: 80 SPACES="$SPACES$SPACES" ;: 160 printmid(){ print "$@" | awk '{FS=""}{print substr($1, '$2', '$3')}' } space(){ printmid "$SPACES" 1 $1 | sed "s/_/ /g" } printlen(){ expr "$*" : ".*" } ESC=$(echo a | tr a "\033") UP=${ESC}[A DOWN=${ESC}[B RIGHT=${ESC}[C LEFT=${ESC}[D if (( $# == 0 )) ; then Message="Korn Shell 83 scroller (c) 1997 CyrekSoft. Author: Carl R. White" else Message=$* fi typeset -i lm pos lm=$(printlen $Message) if (( lm <= 80 )) ; then Message=$Message$(space $((81 - lm)) ) lm=80 fi Message=$Message$Message set -A MessageArray _ $(echo $(space lm) | sed "s/./& /") pos=1 while (( pos <= lm )) ; do MessageArray[$pos]=$(printmid "$Message" $pos 80) pos=$((pos + 1)) done pos=1 while : ; do print ${MessageArray[$pos]} temp=1 while (( temp < 250 )) ; do temp=$((temp+1)) ; : ; done print $UP$UP$UP pos=$((pos + 1)) if (( pos > lm )) ; then pos=1 ; fi done