|
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: 7168 (0x1c00) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Rs6000_Server, seg_03cc84
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦5a81ac88f⟧ »Space Info Vol 1« └─⟦this⟧
with System_Interface; with Text_Io; with Transport_Interchange; with Interchange; with Unix_Base_Types; with System; package body Rs6000_Server is procedure Write_String_C (C_Message : System.Address; C_Tty : System.Address; C_Length : Integer); pragma Interface (C, Write_String_C); pragma Interface_Information (Write_String_C, ".write_string"); procedure Process_Call (Stream : Transport_Stream.Stream_Id; Id : Rpc.Transaction_Id; Version : Rpc.Version_Number; Proc : Rpc.Procedure_Number) is begin case Proc is when Rs6000_Defs.Proc_Number.Put_String => -- Text_Io.Put_Line (Transport_Interchange.Get_String (Stream)); -- Text_Io.Put_Line (Transport_Interchange.Get_String (Stream)); declare C_Message : constant String := Transport_Interchange.Get_String (Stream); C_Tty : constant String := Transport_Interchange.Get_String (Stream) & Ascii.Nul; begin Write_String_C (C_Message => C_Message (C_Message'First)'Address, C_Tty => C_Tty (C_Tty'First)'Address, C_Length => C_Message'Length); end; Rpc_Server.Begin_Response (Stream, Id); when Rs6000_Defs.Proc_Number.Put_Byte => declare C_Message : Interchange.Byte; begin Transport_Interchange.Get (Stream, C_Message); Text_Io.Put_Line ("received byte => *" & Natural'Image (Natural (C_Message)) & "*"); declare C_Tty : constant String := Transport_Interchange.Get_String (Stream) & Ascii.Nul; begin Write_String_C (C_Message => C_Message'Address, C_Tty => C_Tty (C_Tty'First)'Address, C_Length => 1); end; end; Rpc_Server.Begin_Response (Stream, Id); when Rs6000_Defs.Proc_Number.Put_Byte_String => declare C_Message : constant Interchange.Byte_String := Transport_Interchange.Get_Byte_String (Stream); C_Tty : constant String := Transport_Interchange.Get_String (Stream) & Ascii.Nul; begin Write_String_C (C_Message => C_Message (C_Message'First)'Address, C_Tty => C_Tty (C_Tty'First)'Address, C_Length => C_Message'Length); end; Rpc_Server.Begin_Response (Stream, Id); when others => raise Rpc.No_Such_Procedure; end case; end Process_Call; procedure Serve_Gets is new Rpc_Server.Serve (Program => Rs6000_Defs.Program, Supported => (0, Rpc.Version_Number'Last), Process_Call => Process_Call); procedure Serve (Connection : Transport.Connection_Id) is begin Serve_Gets (Connection); end Serve; end Rs6000_Server;
nblk1=6 nid=6 hdr6=8 [0x00] rec0=1d rec1=00 rec2=01 rec3=034 [0x01] rec0=16 rec1=00 rec2=02 rec3=026 [0x02] rec0=16 rec1=00 rec2=05 rec3=05a [0x03] rec0=19 rec1=00 rec2=04 rec3=000 [0x04] rec0=17 rec1=00 rec2=02 rec3=000 [0x05] rec0=41 rec1=89 rec2=b6 rec3=213 tail 0x21535440285dd748c1817 0x42a00088462060003 Free Block Chain: 0x6: 0000 00 03 00 04 80 01 20 01 64 64 72 65 73 73 2c 09 ┆ ddress, ┆ 0x3: 0000 00 00 00 06 80 03 20 20 20 03 61 6c 6c 3b 08 00 ┆ all; ┆