|
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: 8192 (0x2000) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body File, seg_04af06
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with Text_Io, Moving_String; use Moving_String; package body File is Current_Character : Character := Ascii.Nul; Current_Character_Line : Natural := 1; Current_Character_Column : Natural := 0; Previous_Character_Column : Natural; Current_Sentence : Moving_String.Object := Moving_String.Null_Object; Input_Line : Moving_String.Object := Moving_String.Null_Object; Position : Natural := 0; Look_A_Head : Boolean; Output_File : Text_Io.File_Type; procedure Initialize is begin Text_Io.Create (File => Output_File, Mode => Text_Io.Out_File, Name => "adventure_error_file"); Look_A_Head := False; end Initialize; procedure Write_Error_File (Line : in String) is begin Text_Io.Put_Line (Output_File, Line); end Write_Error_File; procedure Show_Error_File is begin null; end Show_Error_File; procedure Close is begin Text_Io.Close (Output_File); end Close; function Is_At_End return Boolean is begin return Current_Character = Ascii.Eot; end Is_At_End; procedure Get_Line is A_Character : Character; begin Moving_String.Free (Current_Sentence); Moving_String.Free (Input_Line); while not Text_Io.End_Of_Line loop Text_Io.Get (A_Character); Current_Sentence := Current_Sentence & A_Character; Input_Line := Input_Line & A_Character; end loop; Input_Line := Input_Line & Ascii.Lf; Text_Io.Skip_Line; Write_Error_File (Moving_String.Image (Current_Sentence)); if Text_Io.End_Of_File then Input_Line := Input_Line & Ascii.Eot; end if; end Get_Line; procedure Get_Char (Output_Character : out Character) is begin if Position = Moving_String.Length (Input_Line) then Get_Line; Position := 0; end if; Position := Position + 1; Output_Character := Moving_String.Char_At (Input_Line, Position); end Get_Char; procedure Next is begin if Look_A_Head then Look_A_Head := False; if Current_Character = Ascii.Lf then Previous_Character_Column := Current_Character_Column; Current_Character_Column := 0; Current_Character_Line := Current_Character_Line + 1; end if; else Get_Char (Current_Character); Current_Character_Column := Current_Character_Column + 1; if Current_Character = Ascii.Lf then Previous_Character_Column := Current_Character_Column; Current_Character_Column := 0; Current_Character_Line := Current_Character_Line + 1; end if; end if; end Next; function Get_Sentence return String is begin return Moving_String.Image (Current_Sentence); end Get_Sentence; function Get_Value return Character is begin return Current_Character; end Get_Value; procedure Unget is begin Look_A_Head := True; if Current_Character = Ascii.Lf then Current_Character_Column := Previous_Character_Column; Current_Character_Line := Current_Character_Line - 1; end if; end Unget; function Get_Line return Natural is begin return Current_Character_Line; end Get_Line; function Get_Column return Natural is begin return Current_Character_Column; end Get_Column; end File;
nblk1=7 nid=7 hdr6=8 [0x00] rec0=24 rec1=00 rec2=01 rec3=02e [0x01] rec0=23 rec1=00 rec2=05 rec3=022 [0x02] rec0=1b rec1=00 rec2=04 rec3=016 [0x03] rec0=25 rec1=00 rec2=03 rec3=000 [0x04] rec0=1d rec1=00 rec2=03 rec3=000 [0x05] rec0=0c rec1=00 rec2=05 rec3=000 [0x06] rec0=8e rec1=8c rec2=00 rec3=026 tail 0x2174f957a867795fa5034 0x42a00088462060003 Free Block Chain: 0x7: 0000 00 02 00 07 80 04 77 5f 45 72 04 69 6c 65 3b 09 ┆ w_Er ile; ┆ 0x2: 0000 00 06 00 67 80 01 3b 01 00 0e 20 20 20 20 65 6e ┆ g ; en┆ 0x6: 0000 00 00 02 54 80 21 20 6e 6f 74 20 65 6e 64 20 6f ┆ T ! not end o┆