-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlvds.bash
More file actions
executable file
·69 lines (55 loc) · 1.04 KB
/
Copy pathlvds.bash
File metadata and controls
executable file
·69 lines (55 loc) · 1.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
function bitmap_create {
for i in {0..7}; do
bitmap[$i]="R$i"
bitmap[8+$i]="G$i"
bitmap[16+$i]="B$i"
done
bitmap[18]="HS"
bitmap[19]="VS"
bitmap[20]="DE"
bitmap[21]="CE"
bitmap[22]="CI"
bitmap[23]="TOOGLE"
bitmap[24]="1"
bitmap[25]="0"
readonly -p -a bitmap;
}
function filter_value {
local tmpreg=${1^^}
if [[ "$tmpreg" == 0X* ]]; then
tmpreg=${tmpreg:2}
fi
echo $tmpreg
}
function hex2bin {
local pad=$(printf '%0.1s' "0"{1..32})
local tmpreg=$(filter_value $1)
local binreg=`echo "obase=2; ibase=16; $tmpreg" | bc`
if [[ ${#binreg} < 32 ]]; then
local tmppad=$(printf '%*.*s' 0 $((32 - ${#binreg})) "$pad")
binreg="$tmppad$binreg"
fi
echo $binreg
}
function parse_reg {
for i in $(seq 0 5 15); do
map[$i]=${1:12+$i:5}
echo $i ${map[@]}
done
}
function main {
if [ "$#" -ne 3 ]; then
echo "Bad arguments"
exit 1
fi
bitmap_create
msb=$(hex2bin $1)
lsb=$(hex2bin $2)
parse_reg $msb
for bit in ${map[@]}; do
echo -n ${bitmap[`echo "$((2#$bit))"`]}
done
}
declare -a bitmap;
declare -a map
main $1