aboutsummaryrefslogtreecommitdiffstats
path: root/tools/DoTags/DoTags.pas
diff options
context:
space:
mode:
Diffstat (limited to 'tools/DoTags/DoTags.pas')
-rw-r--r--tools/DoTags/DoTags.pas26
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.