|
|
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 - metrics - download
Length: 9216 (0x2400)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package Terminal_Specific, pragma Module_Name 4 3215, pragma Subsystem Input_Output, seg_00009f
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
with Device_Independent_Io;
with System;
package Terminal_Specific is
-- This package supports operations that are specific to
-- "terminals". For this purpose, a terminal is an object of
-- type Terminal. These objects are in !Machine.Devices.
--
-- Normal Text_IO-style IO to the terminal is done through:
-- !USERS.user.session Standard_Output
-- !MACHINE.USERS.user Standard_Error
--
-- Window_IO provides quarter-plane, addressable display and key input
--
-- Access to the terminal for Standard_Output, Standard_Error and
-- Window_IO is handled by the job controlling the session, so there may
-- be multiple, simultaneously-active windows.
--
-- Opening a terminal directly provides the application complete control
-- of the terminal. In this case, the terminal is controlled by the job
-- that opens it, NOT the session job.
--
-- More than one job can have a terminal open at the same time, but
-- only one of them will actually receive input or transmit output.
-- Any others will be blocked on both input and output. A job that
-- references the terminal directly and simultaneously uses one of the
-- session-controlled forms of terminal interaction will not work well and
-- may deadlock.
--
-- Attempts to open an enabled terminal other than the one for
-- current session will fail. Control over enabled/disabled status
-- of terminals is available in the Operator package.
--
-- The determination of which of the various jobs dealing with the
-- terminal actually have the right to transmit/receive is done on
-- the basis of which job is "connected". There is at most one
-- connected job at any time. If a job that has the terminal open
-- is currently connected, it has the terminal. If it disconnects
-- or is terminated, control of the terminal reverts to the session.
-- The user can return control of the terminal to the application
-- by doing a Job.Connect with the appropriate job number.
--
-- Transfers of terminal ownership are detectable as part of the
-- status of the Read and Write operations. This allows
-- applications that support disconnect to detect when to redraw
-- their version of the screen.
--
-- The following device-specific Form options are supported:
--
-- Option Explanation Default
--
-- Echo whether to echo input True
-- Edit Line editing or None Line
-- CRLF map LF to CRLF True
--
-- Note: the CRLF option is ignored by the Write procedures in this
-- package to reduce confusion over whether the CR was transferred for a
-- particular count. CRLF is honored by device_independent write/put
-- operations.
--
subtype File_Type is Device_Independent_Io.File_Type;
subtype Byte_String is Device_Independent_Io.Byte_String;
package Status is
type Code is new Integer;
function Image (Value : Code) return String;
--
-- Status.Code Standard reaction
--
-- Normal none
-- Break raise End_Error
-- Disconnect raise End_Error
-- Timed_Out 0 data bytes transferred
-- Data_Error raise Data_Error
-- Data_Overrun raise Device_Error
-- Lost_Ownership ignored
-- Gained_Ownership ignored
-- Too_Many_Clients raise Device_Error
--
-- Standard Read/Write routines in Device_Independent_IO use:
-- Duration'Last for Wait parameters
-- "Standard Reaction" for Result parameters
--
Normal : constant Code := 0;
Break : constant Code := 1;
Disconnect : constant Code := 2;
Not_Open : constant Code := 3;
Timed_Out : constant Code := 4;
Data_Error : constant Code := 5;
Data_Overrun : constant Code := 6;
Lost_Ownership : constant Code := 7;
Gained_Ownership : constant Code := 8;
Too_Many_Clients : constant Code := 9;
end Status;
package Output is
procedure Map_Lf_To_Crlf (File : File_Type; Value : Boolean := True);
-- Equivalent of CRLF Form option; default True
procedure Transmit_Break (File : File_Type);
procedure Transmit_Break (File : File_Type;
Wait : Duration;
Result : out Status.Code);
procedure Disconnect (File : File_Type);
procedure Disconnect (File : File_Type;
Wait : Duration;
Result : out Status.Code);
procedure Wait_For_Transmission (File : File_Type);
-- Wait for all previously written data to be transmitted.
procedure Set_Rts (File : File_Type; On : Boolean);
-- Set the current state of the RTS (pin 4) RS-232
-- modem control output. True => ON, False => OFF.
procedure Set_Dtr (File : File_Type; On : Boolean);
-- Set the current state of the DTR (pin 20) RS-232
-- modem control output. True => ON, False => OFF.
end Output;
package Input is
procedure Flush (File : File_Type);
procedure Set_Echo (File : File_Type; Echo : Boolean := True);
-- Equivalent to Echo Form option; default True
function Get_Echo (File : File_Type) return Boolean;
procedure Set_Editing (File : File_Type; Mode : String := "Line");
-- Equivalent to the Edit Form option; default Edit => Line
-- Disabled with value None.
function Get_Editing (File : File_Type) return String;
end Input;
procedure Read (File : File_Type;
Item : out Byte_String;
Count : out Natural;
Wait : Duration);
procedure Read (File : File_Type;
Item : out String;
Count : out Natural;
Wait : Duration);
procedure Read (File : File_Type;
Item : out Byte_String;
Count : out Natural;
Wait : Duration;
Result : out Status.Code);
procedure Read (File : File_Type;
Item : out String;
Count : out Natural;
Wait : Duration;
Result : out Status.Code);
procedure Write (File : File_Type;
Item : Byte_String;
Count : out Natural;
Wait : Duration);
procedure Write (File : File_Type;
Item : String;
Count : out Natural;
Wait : Duration);
procedure Write (File : File_Type;
Item : Byte_String;
Count : out Natural;
Wait : Duration;
Result : out Status.Code);
procedure Write (File : File_Type;
Item : String;
Count : out Natural;
Wait : Duration;
Result : out Status.Code);
pragma Subsystem (Input_Output);
pragma Module_Name (4, 3215);
end Terminal_Specific;
nblk1=8
nid=0
hdr6=10
[0x00] rec0=19 rec1=00 rec2=01 rec3=030
[0x01] rec0=10 rec1=00 rec2=02 rec3=052
[0x02] rec0=13 rec1=00 rec2=03 rec3=092
[0x03] rec0=19 rec1=00 rec2=04 rec3=016
[0x04] rec0=1b rec1=00 rec2=05 rec3=058
[0x05] rec0=1b rec1=00 rec2=06 rec3=054
[0x06] rec0=1d rec1=00 rec2=07 rec3=016
[0x07] rec0=19 rec1=00 rec2=08 rec3=000
tail 0x201002de47b6a4b31295f 0x42a00088462062003