Program Breakdown; { This program takes a hexidecimal number from 0 -> $ffff & breaks it down into smaller byte size numbers } const hexidec : array[0..15] of char='0123456789ABCDEF'; type breakint = record case integer of 1 : (bigint : integer); 2 : (smlint1, smlint2 : byte); end; str2 = string[2]; Function Hex(mynum : byte) : str2; var value1, value3 : real; value2 : integer; dummy : str2; begin value1:=mynum/16; value2:=trunc(value1); dummy:=hexidec[value2]; value3:=value1-value2; value3:=value3*16; value2:=trunc(value3); dummy:=dummy+hexidec[value2]; hex:=dummy; end; var num1 : breakint; num2 : integer; begin clrscr; write('Enter Integer Number:'); {$I-}readln(num2);{$I+} while (IOResult<>0) do begin writeln; writeln('Please enter a value between $0 or $ffff'); writeln('Your only making this hard on yourself'); write('if you''re not doing the right thing:'); {$I-}readln(num2);{$I+} end; num1.bigint:=num2; writeln('The High Value of this is:',hex(num1.smlint2)); writeln('The Low Value of this is:',hex(num1.smlint1)); end.