|
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, package body Machine_Io, seg_041d5a
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with Device_Independent_Io; with System; with My_Types; with Machine_Io; with Text_Io; with Terminal_Specific; package body Machine_Io is package Byte_Io is new Text_Io.Integer_Io (System.Byte); -- trace Io_Port : constant String := "!machine.devices.terminal_16"; F_In_Out : Terminal_Specific.File_Type; Col : Natural; -- trace procedure Open (With_Mode : Open_Mode) is Mode : Device_Independent_Io.File_Mode; begin Col := 0; -- trace case With_Mode is when Read_Mode => Mode := Device_Independent_Io.In_File; when Write_Mode => Mode := Device_Independent_Io.Out_File; end case; Device_Independent_Io.Open (File => F_In_Out, Mode => Mode, Name => Io_Port, Form => ""); if With_Mode = Read_Mode then Terminal_Specific.Input.Set_Editing (File => F_In_Out, Mode => "None"); Terminal_Specific.Input.Set_Echo (File => F_In_Out, Echo => False); end if; end Open; procedure Close is begin Text_Io.Put_Line (""); -- trace Device_Independent_Io.Close (File => F_In_Out); end Close; procedure Flush is begin Open (With_Mode => Read_Mode); Terminal_Specific.Input.Flush (F_In_Out); Close; end Flush; procedure Write (S : in My_Types.Byte_String) is To_Send : System.Byte_String (1 .. S'Length); F_Out : Terminal_Specific.File_Type; begin Text_Io.Put_Line ("Write : "); for K in S'Range loop To_Send (K) := System.Byte (S (K)); Byte_Io.Put (Item => To_Send (K), Width => 7, Base => 16); if (K mod 10) = 0 then Text_Io.Put_Line (""); -- trace end if; end loop; Device_Independent_Io.Write (File => F_In_Out, Item => To_Send); end Write; function Read return My_Types.Byte is Byte_Read : System.Byte; begin Device_Independent_Io.Read (File => F_In_Out, Item => Byte_Read); if Col = 0 then -- trace Text_Io.Put_Line ("Read :"); end if; Col := Col + 1; -- trace Byte_Io.Put (Item => Byte_Read, Width => 7, Base => 16); -- trace if (Col mod 10) = 0 then Text_Io.Put_Line (""); -- trace end if; return My_Types.Byte (Byte_Read); end Read; end Machine_Io;
nblk1=5 nid=4 hdr6=6 [0x00] rec0=21 rec1=00 rec2=01 rec3=00a [0x01] rec0=21 rec1=00 rec2=03 rec3=090 [0x02] rec0=19 rec1=00 rec2=05 rec3=000 [0x03] rec0=06 rec1=00 rec2=05 rec3=000 [0x04] rec0=0e rec1=00 rec2=04 rec3=000 tail 0x2174291e68628568d141d 0x42a00088462060003 Free Block Chain: 0x4: 0000 00 02 00 40 80 16 69 66 69 63 2e 49 6e 70 75 74 ┆ @ ific.Input┆ 0x2: 0000 00 00 00 17 80 14 70 65 6e 64 65 6e 74 5f 49 6f ┆ pendent_Io┆