Формат представления текущей даты в некоторых системных структурах имеет вид:
№ разряда 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
Значение D D D D D M M M M M Y Y Y Y Y Y
где:
D..D - день
M..M - месяц
Y..Y - год после 1980
За основу программы упаковки предлагают взять следущую:
program Project1;
{ $APPTYPE CONSOLE}
uses
SysUtils;
Var C:Byte;
F:Byte;
B:Byte;
N:Byte;
UnitStateWord:Word;
begin
Write('Введите код состояния (0..31) >');
ReadLn©;
Write('Введите признак ошибки - (0,1) >');
ReadLn(F);
Write('Введите признак занятости - (0,1) >');
ReadLn(

Write('Введите количество байт - (0..255) >');
ReadLn(N);
UnitStateWord:=(C and $1F) shl 11;
UnitStateWord:=UnitStateWord or (F and 1) shl 9;
UnitStateWord:=UnitStateWord or (B and 1) shl 8;
UnitStateWord:=UnitStateWord or N;
WriteLn(Format('%d=$%0:x',[UnitStateWord]));
ReadLn;
end.
Не совсем понимаю как это работает, и что надо исправить чтобы соответствовало условию задачи