diff options
Diffstat (limited to 'tools/DoTags/DoTags.pas')
-rw-r--r-- | tools/DoTags/DoTags.pas | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/tools/DoTags/DoTags.pas b/tools/DoTags/DoTags.pas new file mode 100644 index 00000000..1e18ea12 --- /dev/null +++ b/tools/DoTags/DoTags.pas @@ -0,0 +1,26 @@ +program DoTags; +var + four_letters: string; + tag: int32; +begin + writeln ('Program for the calculation of 4 letter tags, little and big endian.'); + writeln ('Enter 4 letters:'); + readln (four_letters); + while length(four_letters) <> 4 do + begin + writeln ('This were ', length(four_letters), ' letter(s). Enter exactly 4 letters:'); + readln (four_letters); + end; + tag := ord(four_letters[4]) or (ord(four_letters[3]) shl 8) or (ord(four_letters[2]) shl 16) or (ord(four_letters[1]) shl 24); + writeln ('BE-TAG: $', hexStr(tag, 8)); + tag := ord(four_letters[1]) or (ord(four_letters[2]) shl 8) or (ord(four_letters[3]) shl 16) or (ord(four_letters[4]) shl 24); + writeln ('LE-TAG: $', hexStr(tag, 8)); + if four_letters[1] = '0' then + begin + writeln ('Maybe you want a digital zero in the first position. Here you go:'); + tag := ord(four_letters[4]) or (ord(four_letters[3]) shl 8) or (ord(four_letters[2]) shl 16); + writeln ('BE-TAG: $', hexStr(tag, 8)); + tag := (ord(four_letters[2]) shl 8) or (ord(four_letters[3]) shl 16) or (ord(four_letters[4]) shl 24); + writeln ('LE-TAG: $', hexStr(tag, 8)); + end; +end. |