#!/bin/bash
#script je psan na miru a je pouzit nasledujici hardware:
#DISPLEJ:
# http://www.snailshop.cz/seriove-rozhrani/218-alfanumericky-displej-2x16-znaku-se-seriovym-rozhranim-zlutozeleny.html
#USB to TTL prevodnik:
# https://arduino-shop.cz/arduino/935-arduino-programator-pl2303hx-1421353514.html
#DEFINICE PORTU
PORT="/dev/ttyUSB0"
#NASTAVENI PORTU
sudo chmod a+rw $PORT
stty -F $PORT 9600
#novy radek do echo
NR="xfexc0"
#DEFINICE IP ADRES
IPSRV="xxx"
IPRPI="yyy"
IPROU="zzz"
#ZAKLADNI PRIKAZY
SMAZ(){
echo -e "xfex01" > $PORT
}
ROZNI(){
echo -e "xfexe9" > $PORT
}
ZHASNI(){
echo -e "xfexe8" > $PORT
}
if [ "$1" == "-start" ]
then
#NASTAVENI DISPLEJE
#inicializace
#smaz displej
SMAZ
#zapni podsviceni
ROZNI
#vypis verzi firmware
#echo -e "xfexff" > $PORT
#zapipej pico
#sleep 0.01s
#beep -l200 -f800
#sleep 0.05s
#beep -l200 -f800
#sleep 1s
#udelej zemana
#echo -e "Hello, kundo ..." > $PORT
#SMAZ
#sleep 2s
SMAZ
#DEFINICE FUNKCI
#say hello, pico :D
HELLO(){
SMAZ
echo -e " Status display " > $PORT
echo -e "$NR@ Freezy.network" > $PORT
sleep 4s
}
#datum a svatek
DATE(){
SMAZ
echo -e " Dnes je: " > $PORT
echo -e "$NR $(date '+%d.%m.%Y') " > $PORT
sleep 4s
SMAZ
echo -e " Prave je: " > $PORT
echo -e "$NR $(date '+%H:%M:%S') " > $PORT
sleep 4s
SMAZ
echo -e " Svatek ma: " > $PORT
echo -e "$NR$(/bin/svatky-display.sh) " > $PORT
sleep 4s
}
#pouze hodiny
HODINY(){
SMAZ
echo -e " $(date '+%d.%m.%Y') " > $PORT
echo -e "$NR $(date '+%H:%M') " > $PORT
sleep 4s
}
#zobraz info o systemu
SYSTEM(){
uptime=$(</proc/uptime)
uptime=${uptime%%.*}
seconds=$(( uptime%60 ))
minutes=$(( uptime/60%60 ))
hours=$(( uptime/60/60%24 ))
days=$(( uptime/60/60/24 ))
upt=$(echo "$days.d $hours.h $minutes.m $seconds.s" |sed 's/.//g')
SMAZ
echo -e " System uptime: " > $PORT
echo -e "$NR$upt " > $PORT
sleep 4s
SMAZ
echo -e " Load average: " > $PORT
echo -e "$NR$(uptime |awk -F 'average: ' '{print $2}' |sed 's/, / /g') " > $PORT
sleep 4s
SMAZ
echo -e " Processes: " > $PORT
echo -e "$NR total: $(ps -AF | grep -v ps | grep -v grep | wc -l) " > $PORT
sleep 4s
SMAZ
echo -e " Processes: " > $PORT
echo -e "$NR runs: $(ps -A r | grep -v ps | grep -v grep | wc -l) " > $PORT
sleep 4s
ZOMB=$(ps -A x |awk '{print $3}' |grep -c Z)
if [ "$ZOMB" != "0" ]
then
SMAZ
echo -e "Oh shit, zombies" > $PORT
echo -e "$NR kill them! ($(echo $ZOMB)) " > $PORT
sleep 4s
fi
}
#1-wire teploty
WIRE(){
ping -c1 $IPSRV 2>/dev/null 1>/dev/null
if [ "$?" = 0 ]
then
rm /tmp/disptemp.tmp
wget -q -U "status minidisplay script" --no-check-certificate -O /tmp/disptemp.tmp --user=foo --password=bar https://$IPSRV/teploty/teploty.txt
OWT=/tmp/disptemp.tmp
SMAZ
if [ -f /tmp/disptemp.tmp ]
then
echo -e " 1-Wire temp: " > $PORT
echo -e "$NR$(cat $OWT |grep -i venku |sed 's/°C//g') C " > $PORT
sleep 4s
SMAZ
echo -e " 1-Wire temp: " > $PORT
echo -e "$NR$(cat $OWT |grep -i kuchyne |sed 's/°C//g') C " > $PORT
sleep 4s
SMAZ
echo -e " 1-Wire temp: " > $PORT
echo -e "$NR$(cat $OWT |grep -i loznice |sed 's/°C//g') C " > $PORT
sleep 4s
SMAZ
echo -e " 1-Wire temp: " > $PORT
echo -e "$NR$(cat $OWT |grep -i obyvak |sed 's/°C//g') C " > $PORT
sleep 4s
SMAZ
echo -e " 1-Wire temp: " > $PORT
echo -e "$NR$(cat $OWT |grep -i pracovna |sed 's/°C//g') C " > $PORT
sleep 4s
SMAZ
echo -e " 1-Wire temp: " > $PORT
echo -e "$NR$(cat $OWT |grep -i topeni |sed 's/°C//g') C " > $PORT
sleep 4s
else
SMAZ
echo -e " 1-Wire temp: " > $PORT
echo -e "$NR LOCAL ERROR! " > $PORT
fi
else
SMAZ
echo -e " 1-Wire temp: " > $PORT
echo -e "$NR NETWORK ERROR! " > $PORT
fi
}
SKLEP(){
ping -c1 $IPRPI 2>/dev/null 1>/dev/null
if [ "$?" = 0 ]
then
ST=$(curl -skNA "status display script" http://$IPRPI/teploty.txt)
SMAZ
echo -e " 1-Wire temp: " > $PORT
echo -e "$NR$(echo $ST |sed 's/°C//g' |awk '{print "kotel: " $2 " C " $17 ""}') " > $PORT
sleep 4s
SMAZ
echo -e " 1-Wire temp: " > $PORT
echo -e "$NR$(echo $ST |sed 's/°C//g' |awk '{print "dilna: " $4}') C " > $PORT
sleep 4s
SMAZ
echo -e " 1-Wire temp: " > $PORT
echo -e "$NR$(echo $ST |sed 's/°C//g' |awk '{print "HUV: " $6}') C " > $PORT
sleep 4s
SMAZ
echo -e " 1-Wire temp: " > $PORT
echo -e "$NR$(echo $ST |sed 's/°C//g' |awk '{print "RPi CPU: " $8}') C " > $PORT
sleep 4s
SMAZ
echo -e " 1-Wire temp: " > $PORT
echo -e "$NR$(echo $ST |sed 's/°C//g' |awk '{print "RPi case: " $10}') C " > $PORT
sleep 4s
SMAZ
echo -e " 1-Wire temp: " > $PORT
echo -e "$NR$(echo $ST |sed 's/°C//g' |awk '{print "RPi RH: " $12}') " > $PORT
sleep 4s
else
SMAZ
echo -e " 1-Wire temp: " > $PORT
echo -e " RASPI ERROR! " > $PORT
fi
}
#pouze teplota venku
VENKU(){
ping -c1 $IPSRV 2>/dev/null 1>/dev/null
if [ "$?" = 0 ]
then
rm /tmp/disptemp.tmp
wget -q -U "status minidisplay script" --no-check-certificate -O /tmp/disptemp.tmp --user=foo --password=bar https://$IPSRV/teploty/teploty.txt
OWT=/tmp/disptemp.tmp
SMAZ
if [ -f /tmp/disptemp.tmp ]
then
echo -e " Breaking news: " > $PORT
echo -e "$NR$(cat $OWT |grep -i venku |sed 's/°C/ C/g') " > $PORT
sleep 7s
else
SMAZ
echo -e " Breaking news: " > $PORT
echo -e "$NR LOCAL ERROR! " > $PORT
fi
else
SMAZ
echo -e " Breaking news: " > $PORT
echo -e "$NR NETWORK ERROR! " > $PORT
fi
}
#pocet neprectenych mailu v thunderbirdu
# MAIL(){
# UNREAD="/foo/bar/.thunderbird-unread"
# if [ -f $UNREAD ] && [ "$(cat $UNREAD)" != "0" ] && [ "$(pidof thunderbird)" != "" ]
# then
# SMAZ
# echo -e "unread items: $(cat $UNREAD)n Thunderbird" > $PORT
# sleep 5s
# fi
# }
#stav jabberu
# JABBER(){
# if [ "$(pidof psi)" != "" ]
# then
# STAT=$(curl -sN "http://netlab.cz/status/?jid=foobarzoo@jabber.cz&type=var")
# SMAZ
# echo -e " is now: $(echo $STAT |awk '{print $1}')n foobarzoo@jabber.cz" > $PORT
# #echo -e "$(echo $STAT |sed -e 's/.{20}/&€/g' |sed 's/€.*//')n Jabber status:" > $PORT
# sleep 5s
# fi
# }
#co hraje v mamrdoku
AMAROK(){
if [ "$(pidof amarok)" != "" ] && [ "$(qdbus org.kde.amarok /Player GetMetadata)" != "" ]
then
NAZEV=$(qdbus org.kde.amarok /Player GetMetadata |grep title: |cut -d : -f 2 |sed -e 's/.{16}/&€/g' |sed 's/€.*//')
UMELEC=$(qdbus org.kde.amarok /Player GetMetadata |sed 's/albumartist:/jebka:/g' |grep artist: |cut -d : -f 2 |sed -e 's/.{16}/&€/g' |sed 's/€.*//')
ALBUM=$(qdbus org.kde.amarok /Player GetMetadata |sed 's/albumartist:/jebka:/g' |sed 's/albumcovers/jebka:/g' |grep album: |cut -d : -f 2 |sed -e 's/.{16}/&€/g' |sed 's/€.*//')
SMAZ
echo -e " amaroK " > $PORT
echo -e "$NR is now playing " > $PORT
sleep 3s
SMAZ
echo -e "$UMELEC " > $PORT
echo -e "$NR$NAZEV " > $PORT
sleep 5s
SMAZ
echo -e " from album: " > $PORT
echo -e "$NR$ALBUM " > $PORT
sleep 5s
fi
}
#nmap tohoto pocitace
NMAP(){
SMAZ
echo -e " NMAP localhost " > $PORT
echo -e "$NR checking ... " > $PORT
sleep 1s
PRT=$(sudo nmap 127.0.0.1 |grep open |awk '{print $1}' |sed 's//.*//' |sed -e 's/.{16}/&€/g' |sed 's/€.*/.../')
SMAZ
echo -e " Opened ports: " > $PORT
echo -e "$NR$PRT " > $PORT
sleep 4s
}
#opingani routeru
ROUT(){
SMAZ
echo -e " NETGEAR router " > $PORT
echo -e "$NR checking ... " > $PORT
sleep 1s
ping -c1 $IPROU 2>/dev/null 1>/dev/null
if [ "$?" = 0 ]
then
SMAZ
echo -e " NETGEAR router " > $PORT
echo -e "$NR up and running " > $PORT
sleep 4s
else
SMAZ
echo -e " NETGEAR router " > $PORT
echo -e "$NR is offline " > $PORT
sleep 4s
fi
}
#opingani serveru
SRV(){
SMAZ
echo -e " miniSSH server " > $PORT
echo -e "$NR checking ... " > $PORT
sleep 1s
ping -c1 $IPSRV 2>/dev/null 1>/dev/null
if [ "$?" = 0 ]
then
SMAZ
echo -e " miniSSH server " > $PORT
echo -e "$NR up and running " > $PORT
sleep 4s
else
SMAZ
echo -e " miniSSH server " > $PORT
echo -e "$NR is offline " > $PORT
sleep 4s
fi
}
#opingani raspberry sklep
RASPI(){
SMAZ
echo -e " Raspberry Pi " > $PORT
echo -e "$NR checking ... " > $PORT
sleep 1s
ping -c1 $IPRPI 2>/dev/null 1>/dev/null
if [ "$?" = 0 ]
then
SMAZ
echo -e " Raspberry Pi " > $PORT
echo -e "$NR up and running " > $PORT
sleep 4s
else
SMAZ
echo -e " Raspberry Pi " > $PORT
echo -e "$NR is offline " > $PORT
sleep 4s
fi
}
#signal sklepniho ap
AP(){
SIG=$(curl -s http://foo:bar@zoo/activeclient_content.asp |grep b7b7b7 |awk '{print $8}' |sed 's/size=2>//g' |sed 's/</td></tr>//g')
if [ "$SIG" != "" ]
then
SMAZ
echo -e "Ovislink (sklep)" > $PORT
echo -e "$NR signal: $SIG " > $PORT
sleep 4s
else
SMAZ
echo -e "Ovislink (sklep)" > $PORT
echo -e "$NR connect error " > $PORT
sleep 4s
fi
}
#nanoprehled
NANO(){
SMAZ
echo -e "$(date '+%d.%m.%y %H:%M')" > $PORT
echo -e "$NR$(/bin/svatky-display.sh) " > $PORT
sleep 4s
ping -c1 $IPSRV 2>/dev/null 1>/dev/null
if [ "$?" = 0 ]
then
rm /tmp/disptemp.tmp
wget -q -U "status minidisplay script" --no-check-certificate -O /tmp/disptemp.tmp --user=foo --password=bar https://$IPSRV/teploty/teploty.txt
OWT=/tmp/disptemp.tmp
SMAZ
if [ -f /tmp/disptemp.tmp ]
then
echo -e "$(date '+%d.%m.%y %H:%M')" > $PORT
echo -e "$NR$(cat $OWT |grep -i venku |sed 's/°C//g') C " > $PORT
sleep 4s
SMAZ
echo -e "$(date '+%d.%m.%y %H:%M')" > $PORT
echo -e "$NR$(cat $OWT |grep -i kuchyne |sed 's/°C//g') C " > $PORT
sleep 4s
SMAZ
echo -e "$(date '+%d.%m.%y %H:%M')" > $PORT
echo -e "$NR$(cat $OWT |grep -i loznice |sed 's/°C//g') C " > $PORT
sleep 4s
SMAZ
echo -e "$(date '+%d.%m.%y %H:%M')" > $PORT
echo -e "$NR$(cat $OWT |grep -i obyvak |sed 's/°C//g') C " > $PORT
sleep 4s
SMAZ
echo -e "$(date '+%d.%m.%y %H:%M')" > $PORT
echo -e "$NR$(cat $OWT |grep -i pracovna |sed 's/°C//g') C " > $PORT
sleep 4s
SMAZ
echo -e "$(date '+%d.%m.%y %H:%M')" > $PORT
echo -e "$NR$(cat $OWT |grep -i topeni |sed 's/°C//g') C " > $PORT
sleep 4s
else
SMAZ
echo -e "$(date '+%d.%m.%y %H:%M')" > $PORT
echo -e "$NR LOCAL ERROR! " > $PORT
fi
else
SMAZ
echo -e "$(date '+%d.%m.%y %H:%M')" > $PORT
echo -e "$NR NETWORK ERROR! " > $PORT
fi
ping -c1 $IPRPI 2>/dev/null 1>/dev/null
if [ "$?" = 0 ]
then
ST=$(curl -skNA "status display script" http://$IPRPI/teploty.txt)
SMAZ
echo -e "$(date '+%d.%m.%y %H:%M')" > $PORT
echo -e "$NR$(echo $ST |sed 's/°C//g' |awk '{print "kotel: " $2 " C " $17 ""}') " > $PORT
sleep 4s
SMAZ
echo -e "$(date '+%d.%m.%y %H:%M')" > $PORT
echo -e "$NR$(echo $ST |sed 's/°C//g' |awk '{print "dilna: " $4}') C " > $PORT
sleep 4s
SMAZ
echo -e "$(date '+%d.%m.%y %H:%M')" > $PORT
echo -e "$NR$(echo $ST |sed 's/°C//g' |awk '{print "HUV: " $6}') C " > $PORT
sleep 4s
# SMAZ
# echo -e "$(date '+%d.%m.%y %H:%M')" > $PORT
# echo -e "$NR$(echo $ST |sed 's/°C//g' |awk '{print "RPi CPU: " $8}') C " > $PORT
# sleep 4s
# SMAZ
# echo -e "$(date '+%d.%m.%y %H:%M')" > $PORT
# echo -e "$NR$(echo $ST |sed 's/°C//g' |awk '{print "RPi case: " $10}') C " > $PORT
# sleep 4s
# SMAZ
# echo -e "$(date '+%d.%m.%y %H:%M')" > $PORT
# echo -e "$NR$(echo $ST |sed 's/°C//g' |awk '{print "RPi RH: " $12}') " > $PORT
# sleep 4s
else
SMAZ
echo -e "$(date '+%d.%m.%y %H:%M')" > $PORT
echo -e " RASPI ERROR! " > $PORT
fi
}
#VYBER FUNKCI
if [ -z $2 ] || [ "$2" == "-full" ]
then
#vsechny furt dokola, jak u blbych na dvorku
until (())
do
HELLO
VENKU
DATE
#MAIL
#JABBER
AMAROK
WIRE
VENKU
SKLEP
VENKU
SYSTEM
VENKU
NMAP
ROUT
SRV
RASPI
AP
VENKU
SMAZ
sleep 1s
done
elif [ "$2" == "-mini" ]
then
#zakladni informace
until (())
do
HELLO
DATE
#MAIL
#JABBER
AMAROK
WIRE
SKLEP
SMAZ
sleep 1s
done
elif [ "$2" == "-nano" ]
then
HELLO
#nanoprehled
until (())
do
#MAIL
#JABBER
AMAROK
NANO
SMAZ
sleep 1s
done
#########################################
# CUSTOM RULES #
#########################################
elif [ "$2" == "-custom" ]
then
HELLO
#vlastni poradi funkci
until (())
do
#zapsat vlastni poradi sem:
SMAZ
echo -e "oOOo (O_o) oOOo " > $PORT
sleep 1s
echo -e "$NR custom rules .." > $PORT
sleep 120s
#konec vlastnich hodnot
SMAZ
sleep 1s
done
#########################################
# END CUSTOM RULES #
#########################################
elif [ "$2" == "-1wire" ]
then
HELLO
#1-wire
until (())
do
WIRE
SMAZ
sleep 1s
done
elif [ "$2" == "-sklep" ]
then
#sklep teploty
until (())
do
SKLEP
SMAZ
sleep 1s
done
elif [ "$2" == "-teploty" ]
then
#sklep vsechny
until (())
do
WIRE
VENKU
SKLEP
SMAZ
sleep 1s
done
elif [ "$2" == "-rout" ]
then
HELLO
#opingat roouter
until (())
do
ROUT
sleep 10s
SMAZ
echo -e "PING watchdog is" > $PORT
echo -e "$NR now waiting ... " > $PORT
sleep 300s
done
elif [ "$2" == "-srv" ]
then
HELLO
#opingat server
until (())
do
SRV
sleep 10s
SMAZ
echo -e "PING watchdog is" > $PORT
echo -e "$NR now waiting ... " > $PORT
sleep 300s
done
elif [ "$2" == "-raspi" ]
then
HELLO
#opingat raspberry sklep
until (())
do
RASPI
sleep 10s
SMAZ
echo -e "PING watchdog is" > $PORT
echo -e "$NR now waiting ... " > $PORT
sleep 300s
done
elif [ "$2" == "-ap" ]
then
HELLO
#signal sklepniho ap
until (())
do
AP
sleep 10s
done
elif [ "$2" == "-net" ]
then
HELLO
#opingat vsechny zadane ip
until (())
do
NMAP
ROUT
SRV
RASPI
AP
sleep 5s
SMAZ
echo -e "PING watchdog is" > $PORT
echo -e "$NR now waiting ... " > $PORT
sleep 300s
done
# elif [ "$2" == "-mail" ]
# then
# HELLO
# #pocet neprectenych mailu
# until (())
# do
# MAIL
# sleep 30s
# done
# elif [ "$2" == "-jabber" ]
# then
# HELLO
# #jabber status
# until (())
# do
# JABBER
# sleep 30s
# done
elif [ "$2" == "-hodiny" ]
then
HELLO
#pouze hodiny
until (())
do
HODINY
done
elif [ "$2" == "-date" ]
then
HELLO
#datum a svatek
until (())
do
DATE
SMAZ
sleep 1s
done
elif [ "$2" == "-system" ]
then
HELLO
#uptime a load
until (())
do
SYSTEM
SMAZ
sleep 1s
done
elif [ "$2" == "-amarok" ]
then
HELLO
#co hraje v mamrdoku
until (())
do
AMAROK
done
elif [ "$2" == "-nmap" ]
then
HELLO
#nmap tohoto pocitace
until (())
do
NMAP
SMAZ
echo -e "NMAP watchdog is" > $PORT
echo -e "$NR now waiting ... " > $PORT
sleep 300s
done
elif [ "$2" == "-ping" ] && [ "$3" != "" ]
then
HELLO
#opingat rucne zadanou ip
until (())
do
SMAZ
echo -e "$3 " > $PORT
echo -e "$NR checking ... " > $PORT
sleep 1s
ping -c1 $3 2>/dev/null 1>/dev/null
if [ "$?" = 0 ]
then
SMAZ
echo -e "$3 " > $PORT
echo -e "$NR up and running " > $PORT
sleep 4s
else
SMAZ
echo -e "$3 " > $PORT
echo -e "$NR is offline " > $PORT
sleep 4s
fi
SMAZ
echo -e "PING watchdog is" > $PORT
echo -e "$NR now waiting ... " > $PORT
sleep 300s
done
fi
elif [ "$1" == "-fw" ]
then
#vypis firmware
SMAZ
ROZNI
SMAZ
echo -e "firmware version" > $PORT
sleep 2s
SMAZ
echo -e "xfexff" > $PORT
sleep 7s
SMAZ
echo -e " Status display " > $PORT
echo -e "$NR@ Freezy.network" > $PORT
sleep 7s
$0 -stop
elif [ "$1" == "-stop" ]
then
#vypni displej
SMAZ
echo -e " bye bye ... " > $PORT
#beep -l500 -f500
sleep 1s
SMAZ
ZHASNI
SMAZ
elif [ "$1" == "-clear" ]
then
#vymaz displej
#beep -l200 -f800
#sleep 0.05s
#beep -l200 -f800
SMAZ
else
echo ""
echo "Pouziti scriptu $0 - Status MiniDisplay @ Freezy.network:"
echo ""
echo "$0 -start = nekonecna smyska se vsemi funkcemi scriptu"
echo "$0 -start -full = nekonecna smyska se vsemi funkcemi scriptu"
echo "$0 -start -mini = maly prehled, zasadni info, vyrecnejsi"
echo "$0 -start -nano = jeste mensi prehled, nejpodstatnejsi informace"
echo "$0 -start -custom = uzivatelem definovane funkce"
echo "$0 -start -1wire = zobrazeni teplot z 1-Wire site (pouze patro)"
echo "$0 -start -sklep = zobrazeni teplot z 1-WIre site (pouze sklep)"
echo "$0 -start -teploty = zobrazeni teplot z 1-Wire site (sklep i patro)"
echo "$0 -start -rout = ping hlavniho routeru"
echo "$0 -start -srv = ping miniSSH serveru"
echo "$0 -start -raspi = ping Raspberry Pi (sklep)"
echo "$0 -start -ap = zobrazeni signalu AP Ovislink (sklep)"
echo "$0 -start -net = vsechny sitove funkce (-nmap -rout -srv -raspi -ap)"
# echo "$0 -start -mail = zobrazeni neprectenych polozek v thunderbirdu (nutno mit firetray)"
# echo "$0 -start -jabber = zobrazeni stavu jabberu (nutny transport jabbimu)"
echo "$0 -start -hodiny = zobrazeni prosteho data a casu"
echo "$0 -start -date = zobrazeni data, casu a svatku"
echo "$0 -start -system = zobrazeni systemovych informaci"
echo "$0 -start -amarok = zobrazeni aktualne hrajici skladby v amaroKu"
echo "$0 -start -nmap = zobrazeni otevrenych portu na localhostu"
echo "$0 -start -ping IP = ping na uzivatelem zadanou IP/hosta"
echo ""
echo "$0 -fw = zobrazeni firmware displeje|"
echo "$0 -stop = ukonceni a vypnuti displeje|"
echo "$0 -clear = smazani obsahu displeje|"
echo ""
fi
#hex prikazy pro displej
# FE 01 Vymazání displeje, posun kurzoru na první ?ádek a první sloupec
# FE 02 Kurzor na první ?ádek a první sloupec, zruší posun, obsah pam?ti zachová
# FE 04 Kurzor se po zapsání znaku posune doleva (vhodné p?i vypisování ?ísel)
# FE 06 Kurzor se po zapsání znaku posune doprava
# FE 08 Vypne zobrazování, obsah pam?ti zachová
# FE 0C Obnoví zobrazení znak?, vypne kursor
# FE 0D Kursor jako blikající blok
# FE 0E Kursor jako podtržítko
# FE 10 Posune kursor o jedno místo doleva
# FE 14 Posune kursor o jedno místo doprava
# FE 18 Posune obsah displeje o jedno místo doleva
# FE 1C Posune obsah displeje o jedno místo doprava
# FE 40+adresa Nastaví adresu generátoru uživatelských znak?
# FE 80+sloupec Nastaví kurzor na první ?ádek a sloupec 00 až 0F (15 dekadicky)
# FE C0+sloupec Nastaví kurzor na druhý ?ádek a sloupec 00 až 0F (15 dekadicky)
# FE E8 Vypne podsvícení displeje
# FE E9 Zapne podsvícení displeje
# FE FE Zobrazí znak s kódem FE
# FE FF Vypíše verzi firmware na displeji