|
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_03cc99
└─⟦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 Write_Char_C (C_Message : Interchange.Byte; C_Tty : System.Address); pragma Interface (C, Write_Char_C); pragma Interface_Information (Write_Char_C, ".write_char"); 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_Char_C (C_Message => C_Message, C_Tty => C_Tty (C_Tty'First)'Address); 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=5 hdr6=8 [0x00] rec0=1e rec1=00 rec2=01 rec3=05e [0x01] rec0=17 rec1=00 rec2=06 rec3=022 [0x02] rec0=16 rec1=00 rec2=02 rec3=048 [0x03] rec0=1c rec1=00 rec2=04 rec3=000 [0x04] rec0=19 rec1=00 rec2=04 rec3=000 [0x05] rec0=41 rec1=89 rec2=b6 rec3=213 tail 0x2153544fc85e24e7af780 0x42a00088462060003 Free Block Chain: 0x5: 0000 00 03 03 fc 80 08 20 64 65 63 6c 61 72 65 08 00 ┆ declare ┆ 0x3: 0000 00 00 00 06 80 03 20 20 20 03 61 6c 6c 3b 08 00 ┆ all; ┆