|  | DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 | 
This is an automatic "excavation" of a thematic subset of
 See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. | 
top - metrics - download
    Length: 1536 (0x600)
    Types: TextFile
    Names: »packmesst«
└─⟦a41ae585a⟧ Bits:30001842 SW-save af projekt 1000, Alarm-system
    └─⟦72244f0ef⟧ 
        └─⟦this⟧ »packmesst« 
packmess = algol list.yes
external
   procedure pack_mess(mess);
   real array mess;
   begin
      integer lower,upper,pack_index,part_one,part_two,part,
      _       count,no_of_bytes,i;
      lower := system(3,upper,mess);
      no_of_bytes := mess(1) shift (-24) extract 16 + 2;
      if no_of_bytes <= 2 * upper and no_of_bytes >= 16 then
      upper := 1 + no_of_bytes // 4 - (if no_of_bytes mod 4 = 0 then
      1 else 0);
      count := 1;
      i := 1;
      for pack_index := 1 step 1 until upper do
      begin
         part_one := mess(pack_index) shift (-24) extract 16;
         part_two := mess(pack_index) extract 16;
         for part := part_one,part_two do
         begin
            mess(count) := mess(count) shift 16 add part;
            i := i + 1;
            if i > 3 then
            begin
               count := count + 1;
               i := 1;
            end;
         end;
      end;
      mess(count) := mess(count) shift (case i of (48,32,16));
   end pack_mess;
end  
finis
▶EOF◀