|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 6144 (0x1800) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Calculate_Speed, seg_005397, separate Puz_Main
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦5a81ac88f⟧ »Space Info Vol 1« └─⟦this⟧
--/ if R1000 then with System_Utilities; --/ elsif TeleGen2 and then Unix then --// with Unix_Time; --/ elsif Cdf_Hpux then --// with C_Library_Interface; --// with Unix_Base_Types; --/ else --// with something; --/ end if; separate (Puz_Main) procedure Calculate_Speed is --/ if R1000 then Tv1 : Duration; Tv2 : Duration; Time_Per_Tile : Duration; --/ elsif TeleGen2 and then Unix then --// Tv1 : S_Long; --// Tv2 : S_Long; --// Time_Per_Tile : S_Long; --/ elsif Cdf_Hpux then --// Tv1 : Unix_Base_Types.Long; --// Tv2 : Unix_Base_Types.Long; --// Time_Per_Tile : Unix_Base_Types.Long; --/ else --// Something : Here; --/ end if; X : S_Long; Y : S_Long; begin if not First_Call then return; end if; First_Call := False; X := Space_X * Tile_Width; Y := Space_Y * Tile_Height;-/ if R1000 then Time_Per_Tile := Duration (Duration (1.0) / -- 1 second Duration (Tiles_Per_Second)); X_Sync (Dpy, False); Tv1 := System_Utilities.Elapsed; --/ elsif TeleGen2 and then Unix then --// Time_Per_Tile := S_Long (1_000_000) / -- 1 second --// Tiles_Per_Second; --// --// X_Sync (Dpy, False); --// Tv1 := S_Long (Unix_Time.Clock); --/ elsif Cdf_Hpux then --// Time_Per_Tile := Unix_Base_Types.Long (1_000_000) / --// Unix_Base_Types.Long (Tiles_Per_Second); --// --// X_Sync (Dpy, False); --// Tv1 := C_Library_Interface.Time.Clock; --/ else --// Something; --/ end if; Tv2 := Tv1; Move_Steps := 0; while (Tv2 - Tv1) < Time_Per_Tile loop Move_Area (Tile_Window, X, Y, X + 1, Y, Tile_Width, Tile_Height); Rect_Set (Tile_Window, X, Y, 1, Tile_Height, Fg_Pixel); Move_Steps := Move_Steps + 1; X_Sync (Dpy, False); --/ if R1000 then Tv2 := System_Utilities.Elapsed; --/ elsif TeleGen2 and then Unix then --// Tv2 := S_Long (Unix_Time.Clock); --/ elsif Cdf_Hpux then --// Tv2 := C_Library_Interface.Time.Clock; --/ else --// Something; --/ end if; end loop; -- now, see how long this takes without all the extra b.s. -- and compensate; X_Sync (Dpy, False); --/ if R1000 then Tv1 := System_Utilities.Elapsed; --/ elsif TeleGen2 and then Unix then --// Tv1 := S_Long (Unix_Time.Clock); --/ elsif Cdf_Hpux then --// Tv1 := C_Library_Interface.Time.Clock; --/ else --// Something; --/ end if; for I in 0 .. Move_Steps - 1 loop Move_Area (Tile_Window, X, Y, X + 1, Y, Tile_Width, Tile_Height); Rect_Set (Tile_Window, X, Y, 1, Tile_Height, Fg_Pixel); end loop; X_Sync (Dpy, False); --/ if R1000 then Tv2 := System_Utilities.Elapsed; --/ elsif TeleGen2 and then Unix then --// Tv2 := S_Long (Unix_Time.Clock); --/ elsif Cdf_Hpux then --// Tv2 := C_Library_Interface.Time.Clock; --/ else --// Something; --/ end if; if Tv2 = Tv1 then Move_Steps := 1; else --/ if R1000 then Move_Steps := S_Natural (Duration (Duration (Move_Steps) * Duration (Time_Per_Tile)) / Duration (Tv2 - Tv1)); --/ elsif TeleGen2 and then Unix then --// Move_Steps := S_Natural ((Move_Steps * Time_Per_Tile) / (Tv2 - Tv1)); --/ elsif Cdf_Hpux then --// Move_Steps := --// S_Natural ((Unix_Base_Types.Long (Move_Steps) * Time_Per_Tile) / --// (Tv2 - Tv1)); --/ else --// Move_Steps := Something; --/ end if; end if; if Move_Steps = 0 then Move_Steps := 1; end if; end Calculate_Speed;
nblk1=5 nid=0 hdr6=a [0x00] rec0=2a rec1=00 rec2=01 rec3=002 [0x01] rec0=01 rec1=00 rec2=05 rec3=002 [0x02] rec0=1b rec1=00 rec2=02 rec3=01c [0x03] rec0=20 rec1=00 rec2=03 rec3=03a [0x04] rec0=1d rec1=00 rec2=04 rec3=000 tail 0x21500a0068197894ee6fc 0x42a00088462063203