|
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: 4096 (0x1000) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Towers_Of_Hanoi_Graphic, seg_02ae2b
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦5a81ac88f⟧ »Space Info Vol 1« └─⟦this⟧
with Window_Io; package body Towers_Of_Hanoi_Graphic is package Wio renames Window_Io; The_Tower_Base : constant := 19; The_Image : Wio.File_Type; function Get_Needle_Column (For_Needle : Needle) return Wio.Column_Number is begin case For_Needle is when 1 => return 14; when 2 => return 40; when 3 => return 65; end case; end Get_Needle_Column; procedure Print_Needle (Which : Needle; Height : Natural) is Column : constant Wio.Column_Number := Get_Needle_Column (Which); begin for I in 1 .. Height loop Wio.Position_Cursor (The_Image, The_Tower_Base - I, Column); Wio.Overwrite (The_Image, "|"); end loop; end Print_Needle; procedure Print_Disk_With_Char (For_Needle : Needle; The_Disk : Positive; Its_Size : Positive; The_Char : Character) is Column : constant Wio.Column_Number := Get_Needle_Column (For_Needle); Line : constant Wio.Line_Number := The_Tower_Base - The_Disk; The_String : constant String := String'(1 .. 1 => The_Char); begin for I in 1 .. Its_Size loop Wio.Position_Cursor (The_Image, Line, Column - I); Wio.Overwrite (The_Image, The_String); end loop; for I in 1 .. Its_Size loop Wio.Position_Cursor (The_Image, Line, Column + I); Wio.Overwrite (The_Image, The_String); end loop; end Print_Disk_With_Char; procedure Print_Disk (For_Needle : Needle; The_Disk : Positive; Its_Size : Positive) is begin Print_Disk_With_Char (For_Needle, The_Disk, Its_Size, '='); end Print_Disk; procedure Delete_Disk (For_Needle : Needle; The_Disk : Positive; Its_Size : Positive) is begin Print_Disk_With_Char (For_Needle, The_Disk, Its_Size, ' '); end Delete_Disk; begin Wio.Create (The_Image, Wio.Out_File, "Testing the towers of Hanoi"); end Towers_Of_Hanoi_Graphic;
nblk1=3 nid=0 hdr6=6 [0x00] rec0=20 rec1=00 rec2=01 rec3=024 [0x01] rec0=19 rec1=00 rec2=02 rec3=022 [0x02] rec0=0a rec1=00 rec2=03 rec3=000 tail 0x215232f1683e583e4bbad 0x42a00088462063c03