|
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: 15360 (0x3c00) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Port_16, seg_0413ba
└─⟦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 Io; with System; with Terminal_Specific; with Text_Io; with Unchecked_Conversion; with Constantes; with Decimal_To_Hexa; procedure Port_16 is --use Constantes; package Dio renames Device_Independent_Io; package Ts renames Terminal_Specific; package Tio renames Text_Io; subtype Bs is System.Byte_String; type Carte_Valide is record Numero : Natural; Horaire : Natural; end record; Valide : Carte_Valide; F_Out : Ts.File_Type; F_In : Ts.File_Type; type Table is array (1 .. 100) of Natural; Buf : System.Byte_String (0 .. 255); B : System.Byte; T : Table; T_Numero_Lecteur : Table; Cnt : Natural; Entete : Natural; Arg, Etat : Natural; Numero : constant := 16#04#; Beep_4 : constant Bs := (16#01#, 16#04#, 16#00#, 16#01#, 16#2C#, 16#F1#, 16#F2#); Beep_3 : constant Bs := (16#01#, 16#03#, 16#00#, 16#01#, 16#2C#, 16#F1#, 16#F2#); procedure Beeper (Numero_Lecteur : Natural) is Numero : String (1 .. 6) := Decimal_To_Hexa (Numero_Lecteur); Beep : constant Bs := (16#01#, Numero, 16#00#, 16#01#, 16#2C#, 16#F1#, 16#F2#); begin Dio.Write (File => F_Out, Item => Beep); delay 1.0; end Beeper; Site_60 : constant Bs := (16#01#, 16#04#, 16#00#, 16#04#, 16#27#, 16#00#, 16#00#, 16#3C#, 16#F1#, 16#F2#); Rapport_Param : constant Bs := (16#01#, 16#04#, 16#00#, 16#01#, 16#1E#, 16#F1#, 16#F2#); Valid_200 : constant Bs := (16#01#, 16#04#, 16#00#, 16#04#, 16#10#, 16#02#, 16#00#, 16#08#, 16#F1#, 16#F2#); Valid_200_1 : constant Bs := (16#01#, 16#03#, 16#00#, 16#04#, 16#10#, 16#02#, 16#00#, 16#01#, 16#F1#, 16#F2#); T_Heure_3 : constant Bs := (16#01#, 16#03#, 16#00#, 16#1D#, 16#25#, 16#01#, 16#08#, 16#00#, 16#0C#, 16#00#, 16#0E#, 16#00#, 16#12#, 16#00#, 16#10#, 16#00#, 16#00#, 16#00#, 16#00#, 16#00#, 16#00#, 16#00#, 16#00#, 16#00#, 16#00#, 16#00#, 16#00#, 16#00#, 16#00#, 16#00#, 16#00#, 16#00#, 16#00#, 16#F1#, 16#F2#); Invalid_199 : constant Bs := (16#01#, 16#04#, 16#00#, 16#04#, 16#12#, 16#01#, 16#63#, 16#08#, 16#F1#, 16#F2#); Invalid_198 : constant Bs := (16#01#, 16#04#, 16#00#, 16#04#, 16#12#, 16#01#, 16#62#, 16#08#, 16#F1#, 16#F2#); Invalid_198_199 : constant Bs := (16#01#, 16#03#, 16#00#, 16#06#, 16#12#, 16#01#, 16#62#, 16#01#, 16#63#, 16#08#, 16#F1#, 16#F2#); Rapport_Valid_200 : constant Bs := (16#01#, 16#04#, 16#00#, 16#05#, 16#1F#, 16#02#, 16#00#, 16#02#, 16#00#, 16#F1#, 16#F2#); Rapport_Invalid_199 : constant Bs := (16#01#, 16#04#, 16#00#, 16#05#, 16#29#, 16#01#, 16#63#, 16#01#, 16#63#, 16#F1#, 16#F2#); Rapport_Invalid_198 : constant Bs := (16#01#, 16#04#, 16#00#, 16#05#, 16#29#, 16#01#, 16#62#, 16#01#, 16#62#, 16#F1#, 16#F2#); Rapport_Invalid_198_199 : constant Bs := (16#01#, 16#04#, 16#00#, 16#05#, 16#29#, 16#01#, 16#62#, 16#01#, 16#63#, 16#F1#, 16#F2#); Rapport_Site : constant Bs := (16#01#, 16#04#, 16#00#, 16#01#, 16#28#, 16#F1#, 16#F2#); Rapport_T_3_1 : constant Bs := (16#01#, 16#03#, 16#00#, 16#02#, 16#26#, 16#01#, 16#F1#, 16#F2#); Rapport_Horloge : constant Bs := (16#01#, 16#03#, 16#00#, 16#01#, 16#24#, 16#F1#, 16#F2#); Rapport_Evenement : constant Bs := (16#01#, 16#04#, 16#00#, 16#01#, 16#1D#, 16#F1#, 16#F2#); Val : String (1 .. 100); Compteur : Natural; begin Text_Io.Put_Line (" Avant Ouverture FICHIER "); Dio.Open (File => F_Out, Mode => Dio.Out_File, Name => "!machine.devices.terminal_16", Form => ""); Text_Io.Put_Line (" Entrer Dans BEEP "); Dio.Write (File => F_Out, Item => Site_60); delay 0.1; -- Dio.Write (File => F_Out, Item => Beep); -- delay 1.0; Dio.Write (File => F_Out, Item => T_Heure_3); delay 0.1; Dio.Write (File => F_Out, Item => Valid_200); delay 0.5; Dio.Write (File => F_Out, Item => Invalid_199); delay 0.5; Dio.Write (File => F_Out, Item => Invalid_198); delay 0.5; Dio.Write (File => F_Out, Item => Invalid_198_199); delay 0.5; Dio.Write (File => F_Out, Item => Rapport_Site); delay 0.5; Dio.Write (File => F_Out, Item => Rapport_Param); delay 1.0; Dio.Write (File => F_Out, Item => Rapport_Valid_200); delay 0.5; Dio.Write (File => F_Out, Item => Rapport_T_3_1); delay 0.5; Dio.Write (File => F_Out, Item => Rapport_Invalid_199); delay 0.5; Dio.Write (File => F_Out, Item => Rapport_Invalid_198); delay 1.0; Dio.Write (File => F_Out, Item => Rapport_Invalid_198_199); delay 1.0; Text_Io.Put_Line (" SORTIE .... BEEP "); Dio.Close (File => F_Out); delay 0.5; Text_Io.Put_Line (" Ouverture en LECTURE ... "); Dio.Open (File => F_In, Mode => Dio.In_File, Name => "!machine.devices.terminal_16", Form => ""); Ts.Input.Set_Editing (File => F_In, Mode => "None"); Ts.Input.Set_Echo (File => F_In, Echo => False); Text_Io.Put_Line (" ENTRER ... lecture "); for L in 1 .. 20 loop for J in 1 .. 500 loop Dio.Read (F_In, B); Etat := Natural'Val (B); -- Text_Io.Put_Line ("mes1 =>" & Natural'Image (Natural (B))); if Etat = Constantes.Fin then exit; end if; end loop; for I in 1 .. 4 loop Dio.Read (F_In, B); T_Numero_Lecteur (I) := Natural'Val (B); end loop; Text_Io.Put_Line ("No lecteur=>" & Natural'Image (T_Numero_Lecteur (2))); Arg := Natural'Val (B); Dio.Read (F_In, B); Entete := Natural'Val (B); -- Text_Io.Put_Line ("entete=>" & Natural'Image (Natural (B))); case Entete is when 38 => for K in 1 .. Arg - 1 loop Dio.Read (F_In, B); -- Text_Io.Put_Line ("Cnt38 =>" & Natural'Image (Natural (B))); T (K) := Natural'Val (B); end loop; Text_Io.Put_Line ("Numero de plage =>" & Natural'Image (T (1))); Text_Io.Put_Line ("sous zone 1"); Text_Io.Put_Line ("debut periode 1 =>" & Natural'Image (T (2)) & ":" & Natural'Image (T (3))); Text_Io.Put_Line ("fin periode 1 =>" & Natural'Image (T (4)) & ":" & Natural'Image (T (5))); Text_Io.Put_Line ("jours de validite =>" & Natural'Image (T (6))); when 41 => for K in 1 .. Arg - 1 loop Dio.Read (F_In, B); T (K) := Natural'Val (B); end loop; Text_Io.Put_Line ("Carte_invalide =>" & Natural'Image (T (1)) & Natural'Image (T (2))); Text_Io.Put_Line ("plage_horaire =>" & Natural'Image (T (3))); when 31 => for K in 1 .. Arg - 1 loop Dio.Read (F_In, B); T (K) := Natural'Val (B); end loop; Text_Io.Put_Line ("Carte_valide =>" & Natural'Image (T (1)) & Natural'Image (T (2))); Text_Io.Put_Line ("plage_horaire =>" & Natural'Image (T (3))); when 36 => for K in 1 .. Arg - 1 loop Dio.Read (F_In, B); T (K) := Natural'Val (B); end loop; Text_Io.Put_Line ("heure =>" & Natural'Image (T (1))); Text_Io.Put_Line ("minute =>" & Natural'Image (T (2))); Text_Io.Put_Line ("jour =>" & Natural'Image (T (3))); when others => Text_Io.Put_Line (" "); end case; end loop; Text_Io.Put_Line (" SORTIE ... Lecture "); Dio.Close (File => F_In); end Port_16;
nblk1=e nid=c hdr6=14 [0x00] rec0=2c rec1=00 rec2=01 rec3=054 [0x01] rec0=16 rec1=00 rec2=08 rec3=028 [0x02] rec0=12 rec1=00 rec2=05 rec3=006 [0x03] rec0=18 rec1=00 rec2=0a rec3=07e [0x04] rec0=28 rec1=00 rec2=04 rec3=020 [0x05] rec0=24 rec1=00 rec2=06 rec3=02e [0x06] rec0=1d rec1=00 rec2=0b rec3=03c [0x07] rec0=13 rec1=00 rec2=02 rec3=058 [0x08] rec0=1a rec1=00 rec2=03 rec3=00e [0x09] rec0=08 rec1=00 rec2=09 rec3=000 [0x0a] rec0=08 rec1=00 rec2=09 rec3=000 [0x0b] rec0=0f rec1=00 rec2=09 rec3=000 [0x0c] rec0=24 rec1=00 rec2=0f rec3=76d [0x0d] rec0=80 rec1=00 rec2=00 rec3=002 tail 0x2153bfdba8614719691d0 0x42a00088462060003 Free Block Chain: 0xc: 0000 00 0e 00 0b 80 08 20 20 20 20 20 20 20 20 08 20 ┆ ┆ 0xe: 0000 00 0d 00 37 80 03 23 29 3b 03 00 00 00 00 2b 20 ┆ 7 #); + ┆ 0xd: 0000 00 07 03 fc 80 35 70 5f 33 20 3a 20 63 6f 6e 73 ┆ 5p_3 : cons┆ 0x7: 0000 00 00 00 08 80 05 31 36 23 30 30 05 6e 73 74 61 ┆ 16#00 nsta┆