DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦ac7a45177⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Printers, seg_0063ff

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



procedure Printers (Site_Config_File_Name  : String  :=
                       "!Machine.Initialization.Site.Printer_Configuration";
                    Local_Config_File_Name : String  :=
                       "!Machine.Initialization.local.Printer_Configuration";
                    User_Map_File_Name     : String  :=
                       "!Machine.Initialization.local.User_Printer_Map";
                    User_Map_Output_File   : String  :=
                       "!Machine.Queues.User_To_Printer_Map";
                    Ftp_Class_Directory    : String  := "!Machine.Queues.Ftp";
                    Effort_Only            : Boolean := True);
pragma Loaded_Main;
--
-- Initialize the print spooler and related print routing files.  Use the
-- file Site_Config_File_Name and Local_Config_File_Name (above) as the
-- specification of what to do.  Either or both files may be absent.
-- If both are present, the site and local specifications are treated
-- as one (ie, both are processed).  The file named in User_Map_File_Name
-- is used to provide a mapping from user to printer name and its
-- information is used by the Print command (!Commands.Abbreviations.Print).
-- If this file is absent, then the first printer listing processed in either
-- the site or local configuration files, in that order, is used as the
-- default printer for all users.  Running this procedure will configure the
-- spooler and create the User_Map_Output_File which is actually used by the
-- Print command.  As part of configuring the spooler, output files are written
-- to the Ftp_Class_Directory, as well.
--
-- If run with Effort_Only, this procedure will indicate what would have
-- been written where and what spooler actions would be taken, but no
-- files are actually written and the spooler is unaffected.
--
-- Configuration file format:
--
--  File            ::= Entry*
--  Entry           ::= Printer_Name '=>' '(' Device Queue_Machine ')'
--  Printer_Name    ::= <identifier>
--  Device          ::= Device_Kind Device_Options
--  Device_Kind     ::= 'Direct' '=>' Protocol ',' 'Device' '=>' Term_Number
--                  ::= 'Telnet' '=>' Host_Name ',' 'Device' '=>' Term_Number
--                  ::= 'File' '=>' R1000_Pathname
--                  ::= 'Workstation' '=>' Host_Name ',' 'Path' '=>' Pathname
--                          'Suffix' '=>' Suffix_Name
--  Device_Options  ::=
--                  ::= ',' 'Laser_Comm'
--                      ( ',' ('~') 'Reverse_Output_Pages')
--
--  Printer_Name    ::= identifier
--  Protocol        ::= 'Xon_Xoff' | 'Rts'
--  Term_Number     ::= identifier      -- eg Terminal_23
--  Host_Name       ::= identifier
--  Path_Name       ::= contiguous_string
--  Suffix_Name     ::= contiguous_string
--  Queue_Machine   ::= ',' 'On_Node' '=>' identifier
--                  ::=                     -- all nodes if not specified
--
-- Each entry in the file provides information about a printer.
-- Each entry must start on a new line, but the information can extend over
--  several lines and include single and in-line comments.
-- Printers can be connected to R1000s in roughly 4 ways:
--      1. Direct wire connection.  Use Direct => ...  The protocol
--         for printer flow control is either Xon_Xoff or DTR.  See the
--         printer manual for details.  The Device => Term_Number
--         specifies the hardwired port to which the printer is connected.
--         Term_Number must not be enabled for login.
--      2. Telnet connection.  The printer is on the network and is connected
--         to the R1000 via Telnet.  Use Telnet => Host_Name where Host_Name
--         is the name server name of the printer.  A telnet port must be
--         reserved for communications.  This is specified by Device =>
--         Term_Number and must not be enabled for login.
--      3. Output goes to a file.  All spooler output goes to an R1000 file.
--         Manual processing is later required for getting the output printed.
--         Use File => R1000_Pathname, which specifies the file to which
--         output is written.  Group Spooler must have access to this file.
--      4. Individual print jobs are placed in a file and transferred via
--         FTP to another machine for printing.  Use Workstation => Host_Name.
--         Host_Name is the network name of the host to which the files
--         will be transferred.  Path => Pathname is the workstation
--         directory into which they will be transferred.  Its syntax must be
--         such that the file name can be string appended to it to form a
--         legal filename on the workstation.  Some workstation program
--         will then be responsible for actually printing the file.
--
--      In the Direct and Telnet cases, the option 'Laser_Comm' must be
--      specified if a laser printer is connected.  This enables a two-way
--      printer communication protocol.
--
--
-- The Print command uses a table to route print requests to printers.
-- The mapping is be specified in User_Map_File_Name.  This file has the
-- format:
--
--  User-to-printer-map file:
--
--  File            ::= Line*
--  Line            ::= Printer_Name ' ' User_Name*
--  Printer_Name    ::= identifier
--  User_Name       ::= identifier | pattern | 'others'
--
-- When the Print command is run, if no printer is specified, the printer
-- is chosen based on the contents of the map file.
--
--|No_Wait
--|Parameters Effort_Only => false

E3 Meta Data

    nblk1=6
    nid=0
    hdr6=c
        [0x00] rec0=12 rec1=00 rec2=01 rec3=024
        [0x01] rec0=12 rec1=00 rec2=02 rec3=01a
        [0x02] rec0=14 rec1=00 rec2=03 rec3=064
        [0x03] rec0=0f rec1=00 rec2=04 rec3=012
        [0x04] rec0=0e rec1=00 rec2=05 rec3=044
        [0x05] rec0=14 rec1=00 rec2=06 rec3=000
    tail 0x21701ac8681bf81d6cf32 0x42a00088462065003