DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ B T ┃
Length: 23375 (0x5b4f) Types: TextFile Names: »B«
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS └─ ⟦91c658230⟧ »DATA« └─⟦5d656759a⟧ └─⟦this⟧
with Directory_Tools; with Rxi_Install; use Rxi_Install; with Rxi_String; use Rxi_String; with String_Utilities; use String_Utilities; with System_Utilities; package body Release is Lf : constant Character := Ascii.Lf; Terminal_Type_Has_No_Workation_Files : exception; type File_Info_Array is array (Positive range <>) of File_Info; type File_Info_Array_Ptr is access File_Info_Array; ------------------------------------------------------------------------------ -- Terminal recognition codes; keep them in order for easy visual reference -- and don't every assign the same code to two names. ------------------------------------------------------------------------------ Vt100_Id : constant := 0; Xsun3_Id : constant := 1; Xsun4_Id : constant := 2; Xrtus_Id : constant := 3; -- Obsolete/unsupported now 03/20/90 Xdecus_Id : constant := 4; Xncd_Id : constant := 5; Xnews3_Id : constant := 6; Xnews4_Id : constant := 7; Xhp46021a_Id : constant := 8; Xr6us_Id : constant := 9; Xapollo3_Id : constant := 10; Xultus_Id : constant := 11; Xapollom_Id : constant := 12; Xapus_Id : constant := 13; --\f ------------------------------------------------------------------------------ -- "Real" Workstations - Keep these before the "Parasite" X Terminals -- -- These are R1000 terminal types that correspond to "real" computers. -- Ie. They declare and initialize package state that is shared with one or -- more of the "parasite" terminal packages below; and, in order for proper -- initialization to occur during package body elaboration they must textually -- preceed the parasite packages below. ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ ----SUN keyboard 3 ------------------------------------------------------------------------------ package Sun3_X11r3 is Keyboard : Keyboard_Info; Recognition : File_Info; Install : File_Info_Array_Ptr; Source : File_Info_Array_Ptr; end Sun3_X11r3; package body Sun3_X11r3 is separate; package Sun3_X11r3_Sparc is Keyboard : Keyboard_Info; Recognition : File_Info := Sun3_X11r3.Recognition; Install : File_Info_Array_Ptr := Sun3_X11r3.Install; Source : File_Info_Array_Ptr := Sun3_X11r3.Source; end Sun3_X11r3_Sparc; package body Sun3_X11r3_Sparc is separate; package News3_V2_0 is Keyboard : Keyboard_Info; Recognition : File_Info; Install : File_Info_Array_Ptr; Source : File_Info_Array_Ptr; end News3_V2_0; package body News3_V2_0 is separate; package News3_V2_0_Sparc is Keyboard : Keyboard_Info; Recognition : File_Info := News3_V2_0.Recognition; Install : File_Info_Array_Ptr := News3_V2_0.Install; Source : File_Info_Array_Ptr := News3_V2_0.Source; end News3_V2_0_Sparc; package body News3_V2_0_Sparc is separate; ------------------------------------------------------------------------------ ----SUN keyboard 4 ------------------------------------------------------------------------------ package Sun4_X11r3 is Keyboard : Keyboard_Info; Recognition : File_Info := Sun3_X11r3.Recognition; Install : File_Info_Array_Ptr := Sun3_X11r3.Install; Source : File_Info_Array_Ptr := Sun3_X11r3.Source; end Sun4_X11r3; package body Sun4_X11r3 is separate; package Sun4_X11r3_Sparc is Keyboard : Keyboard_Info; Recognition : File_Info := Sun3_X11r3.Recognition; Install : File_Info_Array_Ptr := Sun3_X11r3.Install; Source : File_Info_Array_Ptr := Sun3_X11r3.Source; end Sun4_X11r3_Sparc; package body Sun4_X11r3_Sparc is separate; package News4_V2_0 is Keyboard : Keyboard_Info; Recognition : File_Info := News3_V2_0.Recognition; Install : File_Info_Array_Ptr := News3_V2_0.Install; Source : File_Info_Array_Ptr := News3_V2_0.Source; end News4_V2_0; package body News4_V2_0 is separate; package News4_V2_0_Sparc is Keyboard : Keyboard_Info; Recognition : File_Info := News3_V2_0.Recognition; Install : File_Info_Array_Ptr := News3_V2_0.Install; Source : File_Info_Array_Ptr := News3_V2_0.Source; end News4_V2_0_Sparc; package body News4_V2_0_Sparc is separate; ------------------------------------------------------------------------------ ----IBM ------------------------------------------------------------------------------ package R6us_Aix3_1 is Keyboard : Keyboard_Info; Recognition : File_Info; Install : File_Info_Array_Ptr; Source : File_Info_Array_Ptr; end R6us_Aix3_1; package body R6us_Aix3_1 is separate; ------------------------------------------------------------------------------ ----DEC ------------------------------------------------------------------------------ package Decus_Vms5_1_Multinet203 is Keyboard : Keyboard_Info; Recognition : File_Info; Install : File_Info_Array_Ptr; Source : File_Info_Array_Ptr; end Decus_Vms5_1_Multinet203; package body Decus_Vms5_1_Multinet203 is separate; package Decus_Vms5_1_Wollongong502 is Keyboard : Keyboard_Info; Recognition : File_Info := Decus_Vms5_1_Multinet203.Recognition; Install : File_Info_Array_Ptr := Decus_Vms5_1_Multinet203.Install; Source : File_Info_Array_Ptr := Decus_Vms5_1_Multinet203.Source; end Decus_Vms5_1_Wollongong502; package body Decus_Vms5_1_Wollongong502 is begin Keyboard := Decus_Vms5_1_Multinet203.Keyboard; Keyboard.R1000_Dir := Hs ("X_Vms5_1_Wollongong502"); end Decus_Vms5_1_Wollongong502; package Ultus_Ds_Ultrix4_1 is Keyboard : Keyboard_Info; Recognition : File_Info; Install : File_Info_Array_Ptr; Source : File_Info_Array_Ptr; end Ultus_Ds_Ultrix4_1; package body Ultus_Ds_Ultrix4_1 is separate; package Ultus_Vs_Ultrix4_1 is Keyboard : Keyboard_Info; Recognition : File_Info; Install : File_Info_Array_Ptr; Source : File_Info_Array_Ptr; end Ultus_Vs_Ultrix4_1; package body Ultus_Vs_Ultrix4_1 is separate; ------------------------------------------------------------------------------ ----HP ------------------------------------------------------------------------------ package Hp46021a_Hpux7_0 is Keyboard : Keyboard_Info; Recognition : File_Info; Install : File_Info_Array_Ptr; Source : File_Info_Array_Ptr; end Hp46021a_Hpux7_0; package body Hp46021a_Hpux7_0 is separate; ------------------------------------------------------------------------------ -- APOLLO ------------------------------------------------------------------------------ package Apollo3_Sr10_2_Unix is Keyboard : Keyboard_Info; Recognition : File_Info; Install : File_Info_Array_Ptr; Source : File_Info_Array_Ptr; end Apollo3_Sr10_2_Unix; package body Apollo3_Sr10_2_Unix is separate; package Apollom_Sr10_2_Unix is Keyboard : Keyboard_Info; Recognition : File_Info; Install : File_Info_Array_Ptr; Source : File_Info_Array_Ptr; end Apollom_Sr10_2_Unix; package body Apollom_Sr10_2_Unix is separate; ------------------------------------------------------------------------------ -- APPLE UHIX ------------------------------------------------------------------------------ package Apus_Aux4_0 is Keyboard : Keyboard_Info; Recognition : File_Info; Install : File_Info_Array_Ptr; Source : File_Info_Array_Ptr; end Apus_Aux4_0; package body Apus_Aux4_0 is separate; --\f ------------------------------------------------------------------------------ -- "Parasite" Workstations - Keep these after the "Real" Workstations -- -- These are R1000 terminal types that correspond to things that aren't "real" -- computers. Ie. They share package state with one or more of the above -- packages and in order for proper initialization to occur during package -- body elaboration they must textually follow the packages above. ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ ----NCD ------------------------------------------------------------------------------ package Ncd_R1000 is Keyboard_Sun_X11r3 : Keyboard_Info; Keyboard_Sun_X11r3_Sparc : Keyboard_Info; Keyboard_Xnews_V2_0 : Keyboard_Info; Keyboard_Xnews_V2_0_Sparc : Keyboard_Info; Keyboard_Aix3_1 : Keyboard_Info; Keyboard_Vms5_1_Multinet203 : Keyboard_Info; Keyboard_Vms5_1_Wollongong502 : Keyboard_Info; Keyboard_Ultrix4_1 : Keyboard_Info; Keyboard_Hpux7_0 : Keyboard_Info; Keyboard_Sr10_2_Unix : Keyboard_Info; end Ncd_R1000; package body Ncd_R1000 is separate; --\f function My_Sun return String is ------------------------------------------------------------------------------ -- Return the string name of the appropriate Sun to use for FTP. -- Note: Do *NOT* use "igor" here. It ties up the network something fierce. -- Always use the name of a non-file-server. ------------------------------------------------------------------------------ begin if System_Utilities.User_Name = "GEB" then return "amber"; -- GEB uses amber else return "rutabaga"; -- Other people use some other machine end if; end My_Sun; --\f package body Info is separate; --\f function Supported_Keyboards (Terminal : Terminal_Type) return Keyboard_Info is begin case Terminal is ----SUN when Xsun3_X11r3 => return Sun3_X11r3.Keyboard; when Xsun3_X11r3_Sparc => return Sun3_X11r3_Sparc.Keyboard; when Xsun4_X11r3 => return Sun4_X11r3.Keyboard; when Xsun4_X11r3_Sparc => return Sun4_X11r3_Sparc.Keyboard; when Xnews3_V2_0 => return News3_V2_0.Keyboard; when Xnews3_V2_0_Sparc => return News3_V2_0_Sparc.Keyboard; when Xnews4_V2_0 => return News4_V2_0.Keyboard; when Xnews4_V2_0_Sparc => return News4_V2_0_Sparc.Keyboard; ----APPLE when Xapus_Aux4_0 => return Apus_Aux4_0.Keyboard; ----IBM when Xr6us_Aix3_1 => return R6us_Aix3_1.Keyboard; ----DEC when Xdecus_Vms5_1_Multinet203 => return Decus_Vms5_1_Multinet203.Keyboard; when Xdecus_Vms5_1_Wollongong502 => return Decus_Vms5_1_Wollongong502.Keyboard; when Xultus_Ds_Ultrix4_1 => return Ultus_Ds_Ultrix4_1.Keyboard; when Xultus_Vs_Ultrix4_1 => return Ultus_Vs_Ultrix4_1.Keyboard; ----HP when Xhp46021a_Hpux7_0 => return Hp46021a_Hpux7_0.Keyboard; ----APOLLO when Xapollo3_Sr10_2_Unix => return Apollo3_Sr10_2_Unix.Keyboard; when Xapollom_Sr10_2_Unix => return Apollom_Sr10_2_Unix.Keyboard; ----NCD when Xncd_Sun_X11r3 => return Ncd_R1000.Keyboard_Sun_X11r3; when Xncd_Sun_X11r3_Sparc => return Ncd_R1000.Keyboard_Sun_X11r3_Sparc; when Xncd_Xnews_V2_0 => return Ncd_R1000.Keyboard_Xnews_V2_0; when Xncd_Xnews_V2_0_Sparc => return Ncd_R1000.Keyboard_Xnews_V2_0_Sparc; when Xncd_Aix3_1 => return Ncd_R1000.Keyboard_Aix3_1; when Xncd_Vms5_1_Multinet203 => return Ncd_R1000.Keyboard_Vms5_1_Multinet203; when Xncd_Vms5_1_Wollongong502 => return Ncd_R1000.Keyboard_Vms5_1_Wollongong502; when Xncd_Ds_Ultrix4_1 | Xncd_Vs_Ultrix4_1 => return Ncd_R1000.Keyboard_Ultrix4_1; when Xncd_Hpux7_0 => return Ncd_R1000.Keyboard_Hpux7_0; when Xncd_Sr10_2_Unix => return Ncd_R1000.Keyboard_Sr10_2_Unix; end case; end Supported_Keyboards; --\f function Recognition_File (Terminal : Terminal_Type) return File_Info is begin case Terminal is ----SUN when Xsun3_X11r3 | Xncd_Sun_X11r3 => return Sun3_X11r3.Recognition; when Xsun3_X11r3_Sparc | Xncd_Sun_X11r3_Sparc => return Sun3_X11r3_Sparc.Recognition; when Xsun4_X11r3 => return Sun4_X11r3.Recognition; when Xsun4_X11r3_Sparc => return Sun4_X11r3_Sparc.Recognition; when Xnews3_V2_0 | Xncd_Xnews_V2_0 => return News3_V2_0.Recognition; when Xnews3_V2_0_Sparc | Xncd_Xnews_V2_0_Sparc => return News3_V2_0_Sparc.Recognition; when Xnews4_V2_0 => return News4_V2_0.Recognition; when Xnews4_V2_0_Sparc => return News4_V2_0_Sparc.Recognition; ----APPLE when Xapus_Aux4_0 => return Apus_Aux4_0.Recognition; ----IBM when Xr6us_Aix3_1 | Xncd_Aix3_1 => return R6us_Aix3_1.Recognition; ----DEC when Xdecus_Vms5_1_Multinet203 | Xncd_Vms5_1_Multinet203 => return Decus_Vms5_1_Multinet203.Recognition; when Xdecus_Vms5_1_Wollongong502 | Xncd_Vms5_1_Wollongong502 => return Decus_Vms5_1_Wollongong502.Recognition; when Xultus_Ds_Ultrix4_1 | Xncd_Ds_Ultrix4_1 => return Ultus_Ds_Ultrix4_1.Recognition; when Xultus_Vs_Ultrix4_1 | Xncd_Vs_Ultrix4_1 => return Ultus_Vs_Ultrix4_1.Recognition; ----HP when Xhp46021a_Hpux7_0 | Xncd_Hpux7_0 => return Hp46021a_Hpux7_0.Recognition; ----APOLLO when Xapollo3_Sr10_2_Unix | Xncd_Sr10_2_Unix => return Apollo3_Sr10_2_Unix.Recognition; when Xapollom_Sr10_2_Unix => return Apollom_Sr10_2_Unix.Recognition; ----NCD -- see above. end case; end Recognition_File; --\f function Source_Length (Terminal : Terminal_Type) return Natural is begin case Terminal is ----SUN when Xsun3_X11r3 | Xncd_Sun_X11r3 => return Sun3_X11r3.Source'Length; when Xsun3_X11r3_Sparc | Xncd_Sun_X11r3_Sparc => return Sun3_X11r3_Sparc.Source'Length; when Xsun4_X11r3 => return Sun4_X11r3.Source'Length; when Xsun4_X11r3_Sparc => return Sun4_X11r3_Sparc.Source'Length; when Xnews3_V2_0 | Xncd_Xnews_V2_0 => return News3_V2_0.Source'Length; when Xnews3_V2_0_Sparc | Xncd_Xnews_V2_0_Sparc => return News3_V2_0_Sparc.Source'Length; when Xnews4_V2_0 => return News4_V2_0.Source'Length; when Xnews4_V2_0_Sparc => return News4_V2_0_Sparc.Source'Length; ----APPLE when Xapus_Aux4_0 => return Apus_Aux4_0.Source'Length; ----IBM when Xr6us_Aix3_1 | Xncd_Aix3_1 => return R6us_Aix3_1.Source'Length; ----DEC when Xdecus_Vms5_1_Multinet203 | Xncd_Vms5_1_Multinet203 => return Decus_Vms5_1_Multinet203.Source'Length; when Xdecus_Vms5_1_Wollongong502 | Xncd_Vms5_1_Wollongong502 => return Decus_Vms5_1_Wollongong502.Source'Length; when Xultus_Ds_Ultrix4_1 | Xncd_Ds_Ultrix4_1 => return Ultus_Ds_Ultrix4_1.Source'Length; when Xultus_Vs_Ultrix4_1 | Xncd_Vs_Ultrix4_1 => return Ultus_Vs_Ultrix4_1.Source'Length; ----HP when Xhp46021a_Hpux7_0 | Xncd_Hpux7_0 => return Hp46021a_Hpux7_0.Source'Length; ----APOLLO when Xapollo3_Sr10_2_Unix | Xncd_Sr10_2_Unix => return Apollo3_Sr10_2_Unix.Source'Length; when Xapollom_Sr10_2_Unix => return Apollom_Sr10_2_Unix.Source'Length; ----NCD -- see above. end case; end Source_Length; --\f function Install_Length (Terminal : Terminal_Type) return Natural is begin case Terminal is ----SUN when Xsun3_X11r3 | Xncd_Sun_X11r3 => return Sun3_X11r3.Install'Length; when Xsun3_X11r3_Sparc | Xncd_Sun_X11r3_Sparc => return Sun3_X11r3_Sparc.Install'Length; when Xsun4_X11r3 => return Sun4_X11r3.Install'Length; when Xsun4_X11r3_Sparc => return Sun4_X11r3_Sparc.Install'Length; when Xnews3_V2_0 | Xncd_Xnews_V2_0 => return News3_V2_0.Install'Length; when Xnews3_V2_0_Sparc | Xncd_Xnews_V2_0_Sparc => return News3_V2_0_Sparc.Install'Length; when Xnews4_V2_0 => return News4_V2_0.Install'Length; when Xnews4_V2_0_Sparc => return News4_V2_0_Sparc.Install'Length; ----APPLE when Xapus_Aux4_0 => return Apus_Aux4_0.Install'Length; ----IBM when Xr6us_Aix3_1 | Xncd_Aix3_1 => return R6us_Aix3_1.Install'Length; ----DEC when Xdecus_Vms5_1_Multinet203 | Xncd_Vms5_1_Multinet203 => return Decus_Vms5_1_Multinet203.Install'Length; when Xdecus_Vms5_1_Wollongong502 | Xncd_Vms5_1_Wollongong502 => return Decus_Vms5_1_Wollongong502.Install'Length; when Xultus_Ds_Ultrix4_1 | Xncd_Ds_Ultrix4_1 => return Ultus_Ds_Ultrix4_1.Install'Length; when Xultus_Vs_Ultrix4_1 | Xncd_Vs_Ultrix4_1 => return Ultus_Vs_Ultrix4_1.Install'Length; ----HP when Xhp46021a_Hpux7_0 | Xncd_Hpux7_0 => return Hp46021a_Hpux7_0.Install'Length; ----APOLLO when Xapollo3_Sr10_2_Unix | Xncd_Sr10_2_Unix => return Apollo3_Sr10_2_Unix.Install'Length; when Xapollom_Sr10_2_Unix => return Apollom_Sr10_2_Unix.Install'Length; ----NCD -- see above. end case; end Install_Length; --\f function Source (Terminal : Terminal_Type; File_No : Positive) return File_Info is begin case Terminal is ----SUN when Xsun3_X11r3 | Xncd_Sun_X11r3 => return Sun3_X11r3.Source (File_No); when Xsun3_X11r3_Sparc | Xncd_Sun_X11r3_Sparc => return Sun3_X11r3_Sparc.Source (File_No); when Xsun4_X11r3 => return Sun4_X11r3.Source (File_No); when Xsun4_X11r3_Sparc => return Sun4_X11r3_Sparc.Source (File_No); when Xnews3_V2_0 | Xncd_Xnews_V2_0 => return News3_V2_0.Source (File_No); when Xnews3_V2_0_Sparc | Xncd_Xnews_V2_0_Sparc => return News3_V2_0_Sparc.Source (File_No); when Xnews4_V2_0 => return News4_V2_0.Source (File_No); when Xnews4_V2_0_Sparc => return News4_V2_0_Sparc.Source (File_No); ----APPLE when Xapus_Aux4_0 => return Apus_Aux4_0.Source (File_No); ----IBM when Xr6us_Aix3_1 | Xncd_Aix3_1 => return R6us_Aix3_1.Source (File_No); ----DEC when Xdecus_Vms5_1_Multinet203 | Xncd_Vms5_1_Multinet203 => return Decus_Vms5_1_Multinet203.Source (File_No); when Xdecus_Vms5_1_Wollongong502 | Xncd_Vms5_1_Wollongong502 => return Decus_Vms5_1_Wollongong502.Source (File_No); when Xultus_Ds_Ultrix4_1 | Xncd_Ds_Ultrix4_1 => return Ultus_Ds_Ultrix4_1.Source (File_No); when Xultus_Vs_Ultrix4_1 | Xncd_Vs_Ultrix4_1 => return Ultus_Vs_Ultrix4_1.Source (File_No); ----HP when Xhp46021a_Hpux7_0 | Xncd_Hpux7_0 => return Hp46021a_Hpux7_0.Source (File_No); ----APOLLO when Xapollo3_Sr10_2_Unix | Xncd_Sr10_2_Unix => return Apollo3_Sr10_2_Unix.Source (File_No); when Xapollom_Sr10_2_Unix => return Apollom_Sr10_2_Unix.Source (File_No); ----NCD -- see above. end case; end Source; --\f function Install (Terminal : Terminal_Type; File_No : Positive) return File_Info is begin case Terminal is ----SUN when Xsun3_X11r3 | Xncd_Sun_X11r3 => return Sun3_X11r3.Install (File_No); when Xsun3_X11r3_Sparc | Xncd_Sun_X11r3_Sparc => return Sun3_X11r3_Sparc.Install (File_No); when Xsun4_X11r3 => return Sun4_X11r3.Install (File_No); when Xsun4_X11r3_Sparc => return Sun4_X11r3_Sparc.Install (File_No); when Xnews3_V2_0 | Xncd_Xnews_V2_0 => return News3_V2_0.Install (File_No); when Xnews3_V2_0_Sparc | Xncd_Xnews_V2_0_Sparc => return News3_V2_0_Sparc.Install (File_No); when Xnews4_V2_0 => return News4_V2_0.Install (File_No); when Xnews4_V2_0_Sparc => return News4_V2_0_Sparc.Install (File_No); ----APPLE when Xapus_Aux4_0 => return Apus_Aux4_0.Install (File_No); ----IBM when Xr6us_Aix3_1 | Xncd_Aix3_1 => return R6us_Aix3_1.Install (File_No); ----DEC when Xdecus_Vms5_1_Multinet203 | Xncd_Vms5_1_Multinet203 => return Decus_Vms5_1_Multinet203.Install (File_No); when Xdecus_Vms5_1_Wollongong502 | Xncd_Vms5_1_Wollongong502 => return Decus_Vms5_1_Wollongong502.Install (File_No); when Xultus_Ds_Ultrix4_1 | Xncd_Ds_Ultrix4_1 => return Ultus_Ds_Ultrix4_1.Install (File_No); when Xultus_Vs_Ultrix4_1 | Xncd_Vs_Ultrix4_1 => return Ultus_Vs_Ultrix4_1.Install (File_No); ----HP when Xhp46021a_Hpux7_0 | Xncd_Hpux7_0 => return Hp46021a_Hpux7_0.Install (File_No); ----APOLLO when Xapollo3_Sr10_2_Unix | Xncd_Sr10_2_Unix => return Apollo3_Sr10_2_Unix.Install (File_No); when Xapollom_Sr10_2_Unix => return Apollom_Sr10_2_Unix.Install (File_No); ----NCD -- see above. end case; end Install; --\f end Release;